如何找出WordPress主题为什么会破坏我的网站?

时间:2015-04-01 09:45:13

标签: php

我最近在WordPress上有了一个主题,在设置主题时我试图使用Twitter功能,虽然这部分代码可以将我的一条推文嵌入到页面中,但这会破坏网站。

所有的API令牌都已添加到代码的前面部分,这让我觉得有些错误,并且可能存在语法错误。

 <?php
            function buildBaseString($baseURI, $method, $params) {
                $r = array();
                ksort($params);
                foreach($params as $key=>$value){
                    $r[] = "$key=" . rawurlencode($value);
                }
                return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
            }

            function buildAuthorizationHeader($oauth) {
                $r = 'Authorization: OAuth ';
                $values = array();
                foreach($oauth as $key=>$value)
                    $values[] = "$key=\"" . rawurlencode($value) . "\"";
                $r .= implode(', ', $values);
                return $r;
            }

            $url = "https://api.twitter.com/1.1/statuses/user_timeline.json";

            $oauth_access_token = $tweet_token;
            $oauth_access_token_secret = $tweet_token_secret;
            $consumer_key = $tweet_key;
            $consumer_secret = $tweet_key_secret;

            $oauth = array( 'screen_name' => $tweet_user,
                            'count' => 1,
                            'oauth_consumer_key' => $consumer_key,
                            'oauth_nonce' => time(),
                            'oauth_signature_method' => 'HMAC-SHA1',
                            'oauth_token' => $oauth_access_token,
                            'oauth_timestamp' => time(),
                            'oauth_version' => '1.0');

            $base_info = buildBaseString($url, 'GET', $oauth);
            $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret);
            $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
            $oauth['oauth_signature'] = $oauth_signature;

            // Make Requests
            $header = array(buildAuthorizationHeader($oauth), 'Expect:');
            $options = array( CURLOPT_HTTPHEADER => $header,
                              //CURLOPT_POSTFIELDS => $postfields,
                              CURLOPT_HEADER => false,
                              CURLOPT_URL => $url . '?screen_name='.$tweet_user.'&count=1', 
                              CURLOPT_RETURNTRANSFER => true,
                              CURLOPT_SSL_VERIFYPEER => false);

            $feed = curl_init();
            curl_setopt_array($feed, $options);
            $json = curl_exec($feed);
            curl_close($feed);

            $twitter_data = json_decode($json);

            $out ='<ul id="twitter">';

            foreach ($twitter_data as $key=>$value) {
            $regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.\,]*(\?\S+)?)?)*)@';
            $text  = $value->text;
            $text  = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\./-]*(\?\S+)?)?)?)@', '<a target="blank" title="$1" href="$1">$1</a>', $text);
            $text  = preg_replace('/#([0-9a-zA-Z_-]+)/', "<a target='blank' title='$1' href=\"http://twitter.com/search?q=$1\">#$1</a>",  $text);
            $text  = preg_replace("/@([0-9a-zA-Z_-]+)/", "<a target='blank' title='$1' href=\"http://twitter.com/$1\">@$1</a>", $text);

            $out  .='<li>' . $text . '</li>';

            };

            $out  .='</ul>';

            echo $out;

    ?>

0 个答案:

没有答案