web-dev-qa-db-fra.com

Importer des tweets avec certains hashtags dans Wordpress

Je cherche un moyen d'importer des tweets dans Wordpress en tant que messages. En fait, je souhaite afficher des tweets sur un certain sujet sur une page de Wordpress. Ainsi, la page A contiendrait des tweets sur le hashtag x et la page B contiendrait des tweets hashtag y.

Il existe au moins un plug-in qui importe des tweets (Tweet-Import), mais il ne peut importer des tweets que par un utilisateur donné, pas par hashtag.

Est-il possible que cela soit fait?

À votre santé!

4
user3201

J'ai écrit une fonction de shortcode basée sur le plugin "Twitter Hash Tag Widget"

il suffit de copier cette fonction dans votre fichier themes.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;
}

puis transformez-le en un code court en ajoutant la ligne suivante à votre fichier themes.php de themes:

add_shortcode("hashtag_tweets", "tweets_by_hashtag_9867");

Il ne vous reste plus qu'à créer un nouveau, une page ou un article et à entrer un code court, par exemple:

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

remplacez YOUR_TAG par votre hashtag et NUMBER_OF_TWEETS_TO_GET par le nombre de tweets que vous souhaitez obtenir.

J'espère que cela t'aides.

11
Bainternet