PHP / Wordpress - интегрируйте функцию WordPress с существующим кодом PHP для Twitter - PullRequest
0 голосов
/ 05 июля 2011

У меня есть следующий PHP-код, который я использую для извлечения твитов:

<?php
class TwitterFeed {
    public $tweets = array();
    public function __construct($user, $limit = 5) {
        $user = str_replace(' OR ', '%20OR%20', $user);
        $feed = curl_init('http://search.twitter.com/search.atom?q=from:'. $user .'&rpp='. $limit);
        curl_setopt($feed, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($feed, CURLOPT_HEADER, 0);
        $xml = curl_exec($feed);
        curl_close($feed);
        $result = new SimpleXMLElement($xml);
        foreach($result->entry as $entry) {
            $tweet = new stdClass();
            $tweet->id = (string) $entry->id;
            $user = explode(' ', $entry->author->name);
            $tweet->user = (string) $user[0];
            $tweet->author = (string) substr($entry->author->name, strlen($user[0])+2, -1);
            $tweet->title = (string) $entry->title;
            $tweet->content = (string) $entry->content;
            $tweet->updated = (int) strtotime($entry->updated);
            $tweet->permalink = (string) $entry->link[0]->attributes()->href;
            $tweet->avatar = (string) $entry->link[1]->attributes()->href;
            array_push($this->tweets, $tweet);
        }
        unset($feed, $xml, $result, $tweet);
    }
    public function getTweets() { return $this->tweets; }
}
$feed = new TwitterFeed('trekradio', 4);
$tweets = $feed->getTweets();

?>

Мне нужно заменить 'trekradio' в этой строке $ feed = new TwitterFeed ('trekradio', 4);так что он использует следующий код.Этот код определяет идентификатор Twitter на динамической основе из поля базы данных.

<?php if (have_posts()) { $flag = true;  while (have_posts()) { the_post();
if ($flag) { $value = get_cimyFieldValue(get_the_author_ID(), 'twitter-username');
if ($value != NULL) echo . cimy_uef_sanitize_content($value) . ;
$flag = false;    }}} ?>

Может кто-нибудь показать мне, как интегрировать код для его правильной работы?

Спасибо

1 Ответ

0 голосов
/ 05 июля 2011

Я предполагаю, что $ value - это переменная, которую вы хотите передать в качестве параметра?

Я также предполагаю, что класс TwitterFeed доступен из того места, где вы пытаетесь запуститьвторой фрагмент кода.

Последнее предположение: cimy_uef_sanitize_content возвращает значение, допустимое для передачи в качестве параметра конструктору TwitterFeed.

Удалите строку $ feed и $ tweets снизукласс (если вы явно не требуете, чтобы он запускался против trekradio).

Затем используйте следующий код:

<?php 
if (have_posts()) { 
    $flag = true;  
    while (have_posts()) { 
        the_post();
        if ($flag) { 
            $value = get_cimyFieldValue(get_the_author_ID(), 'twitter-username');
            if ($value != NULL) {
                $feed = new TwitterFeed(cimy_uef_sanitize_content($value), 4);
                $tweets = $feed->getTweets();
                // Do whatever you need to do with your Tweets here
            }
            $flag = false;    
        }
    }
} ?>

Но почему вы снова задаете этот вопрос?На него наверняка уже ответили в PHP - Эхо внутри существующей функции

РЕДАКТИРОВАТЬ: Вопрос: Какая разница между «twitter-username» и значением, которое вы хотите отправитьПараметр $ user в вашем конструкторе TwitterFeed?Если они одинаковы, это можно упростить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...