user
  • 0
Гуру

Импорт твитов с определенными хэштегами в WordPress

  • 0

Я ищу способ импортировать твиты в WordPress как сообщения. На самом деле я хочу отображать твиты на определенную тему на странице в WordPress. Таким образом, страница A будет содержать твиты с хэштегом x, а страница B будет содержать твиты с хэштегом y.

Существует по крайней мере один плагин, который импортирует твиты (Tweet-Import), но он может импортировать твиты только определенного пользователя, а не по хэштегу.

Есть ли способ, которым это можно сделать?

Ваше здоровье!

Share
  1. Как вы имеете в виду «Импорт твитов». Вам просто нужна страница, которая генерирует список последних твитов с определенным хэштегом, или вы хотите поместить твиты в базу данных?

    • 0
  2. Я написал функцию шорткода на основе плагина «Twitter Hash Tag Widget».

    просто скопируйте эту функцию в файл functions.php вашей темы

    function tweets_by_hashtag_9867($atts, $content = null){
                extract(shortcode_atts(array(
                    "hashtag" => 'default_tag',
                    "number" => 5,
                    ), $atts));
            $api_url = 'http://search.twitter.com/search.json';
            $raw_response = wp_remote_get("$api_url?q=%23$hashtag&rpp=$number");
    
            if ( is_wp_error($raw_response) ) {
                $output = "<p>Failed to update from Twitter!</p>\n";
                $output .= "<!--{$raw_response->errors['http_request_failed'][0]}-->\n";
                $output .= get_option('twitter_hash_tag_cache');
            } else {
                if ( function_exists('json_decode') ) {
                    $response = get_object_vars(json_decode($raw_response['body']));
                    for ( $i=0; $i < count($response['results']); $i++ ) {
                        $response['results'][$i] = get_object_vars($response['results'][$i]);
                    }
                } else {
                    include(ABSPATH . WPINC . '/js/tinymce/plugins/spellchecker/classes/utils/JSON.php');
                    $json = new Moxiecode_JSON();
                    $response = @$json->decode($raw_response['body']);
                }
    
                $output = "<div class='twitter-hash-tag'>\n";
                foreach ( $response['results'] as $result ) {
                    $text = $result['text'];
                    $user = $result['from_user'];
                    $image = $result['profile_image_url'];
                    $user_url = "http://twitter.com/$user";
                    $source_url = "$user_url/status/{$result['id']}";
    
                    $text = preg_replace('|(https?://[^\ ]+)|', '<a href="$1">$1</a>', $text);
                    $text = preg_replace('|@(\w+)|', '<a href="http://twitter.com/$1">@$1</a>', $text);
                    $text = preg_replace('|#(\w+)|', '<a href="http://search.twitter.com/search?q=%23$1">#$1</a>', $text);
    
                    $output .= "<div>";
    
                    if ( $images )
                        $output .= "<a href='$user_url'><img src='$image' alt='$user' /></a>";
                    $output .= "<a href='$user_url'>$user</a>: $text <a href='$source_url'>&raquo;</a></div>\n";
                }
                $output .= "<div class='view-all'><a href='http://search.twitter.com/search?q=%23$hashtag'>" . __('View All') . "</a></div>\n";
                $output .= "</div>\n";
            }
    
            return $output;
    }
    

    затем превратите его в короткий код, добавив следующую строку в файл functions.php вашей темы:

    add_shortcode("hashtag_tweets", "tweets_by_hashtag_9867");
    

    Затем все, что вам осталось сделать, это создать новую страницу или публикацию и ввести короткий код, например:

    [hashtag_tweets hashtag="YOUR_TAG" number="NUMBER_OF_TWEETS_TO_GET"]
    

    измените YOUR_TAG на свой хэштег и измените NUMBER_OF_TWEETS_TO_GET на количество твитов, которые вы хотите получить.

    Надеюсь это поможет.

    • 0

Оставить ответ

You must login to add an answer.