✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka näyttää twiittiarkisto WordPressissä PHP:n ja MySQL:n avulla Crontab-tuen kanssa?

14

Diskantti ei näytä kaikkia twiittejä hyvin. Minulla on tähän mennessä yli 600 twiittiä (useimmat niistä lähetetään PHP-skriptillä VPS :ssä ). Jos haluat tallentaa kopion kaikista historiallisista twiiteistäsi omaan tietokantaasi paikallisesti, voit tietysti pyytää arkistoa twitter-tililläsi [Asetukset – Tili – Pyydä arkistoa].

Kuinka näyttää twiittiarkisto Wordpressissä PHP:n ja MySQL:n avulla Crontab-tuen kanssa?

pyyntö-twitter-arkisto

Entä jos voit tallentaa kaikki twiitit ja näyttää ne blogissasi (WordPress-sivulla)? Idea on hieno, koska twiittejä voidaan pitää SEO-tarkoituksiin tarkoitettuina artikkeleina. Joten sinun on luotava taulukko wordpress-tietokantaan, esimerkiksi anna meidän nimetä se tweets.

Kuinka näyttää twiittiarkisto Wordpressissä PHP:n ja MySQL:n avulla Crontab-tuen kanssa?

twiittihistoria-taulukko

Meillä on neljä saraketta, nämä ovat: twiitin tunnus, teksti, päivämäärä/aika, uudelleentwiitin määrä. Tietysti voit saada lisää tietoa twitter API statuses/user_timeline -kohdasta, mutta olemme vain kiinnostuneita näistä neljästä.

Paikallinen säilytys

Twitter-sovellusliittymien käytölle on aina rajattu nopeus, joten et voi käyttää niitä kovin usein. Ajatuksena tässä on kuitenkin olla PHP-skripti, joka toimii crontabissa (muutaman tunnin välein) ja hakee twiitit ja tallentaa ne paikallisesti tietokantaan.

Voimme käyttää TwitterOAuth php -kirjastoa vuorovaikutukseen Twitterin API:iden kanssa:

// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
require('TwitterOAuth-1/TwitterOAuth/TwitterOAuth.php');
require('TwitterOAuth-1/TwitterOAuth/Exception/TwitterException.php');
require('TwitterOAuth-1/config.php');  
use TwitterOAuthTwitterOAuth;
date_default_timezone_set('UTC');
 
$config = array(
    'consumer_key'       => $twitter_apikey, // API key
    'consumer_secret'    => $twitter_apisecret, // API secret
    'oauth_token'        => $twitter_accesstoken, // not needed for app only
    'oauth_token_secret' => $twitter_accesstokensecret,
    'output_format'      => 'object'
);
$tw = new TwitterOAuth($config);

Tallenna yllä nimellä twitter.php, jotta voimme sisällyttää ne aina, jos haluamme käyttää Twitterin API-liittymiä.

// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
  require("twitter.php"); 
 
  $params = array(
      'screen_name' => $twitter_screenname,
      'user_id' => $twitter_ownerid,
      'count' => 300,
      'include_rts' => 1,
      'exclude_replies' => false
  );
  $tweets = $tw->get('statuses/user_timeline', $params);
 
  mysql_query("SET NAMES utf8");
  if(!empty($tweets)) {
      foreach($tweets as $tweet) {
          $id = $tweet->id;
          $retweet_count = (integer)$tweet->retweet_count;
          $created_at = $tweet->created_at;
          $text = $tweet->text;
          $text = mysql_real_escape_string($text);
          $query = "select count(1) from `tweets` where `id` = '$id'";
          $result = mysql_query($query);
          $cnt = mysql_result($result, 0, 0);
          if ($cnt == 0) {
            $query = "insert into `tweets` set `id`='$id', `text`='$text', `created_at`='$created_at',`retweet_count`='$retweet_count'";            
          } else {
            $query = "update `tweets` set `id`='$id', `text`='$text', `created_at`='$created_at',`retweet_count`='$retweet_count' where `id`='$id'";            
          }
          mysql_query($query);
      }
  }

mysql_query( " SET NAMES utf8") varmistaa, että tweetit on lisätty oikein tietokantaan. Mb_detect_encoding varmistaa, että API:ilta palautetut twiitit ovat todella UTF-8-koodattuja. Yllä oleva PHP-skripti tarkistaa kaksoiskappaleiden varalta (Twitterin perusteella ID), joten ensimmäisen kerran uusi twiitti lisätään, mutta toisella kerralla se vain päivitetään.

Yhdellä API-kutsulla saat maksimimäärän twiittejä, esim. 300. Jos sinulla on enemmän twiittejä, voit aina soittaa useita kertoja skriptille ladataksesi kaikki twiitit. Meidän on kuitenkin määritettävä max_id- parametri, joka palauttaa tätä tunnusta vanhemmat twiitit (pienemmät tunnukset). Jotta voimme:

// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
  $query = "select min(`id`) from `tweets`";
  $result = mysql_query($query) or die(mysql_error());
  $cnt = mysql_result($result, 0, 0);    
 
  $params = array(
      'screen_name' => $twitter_screenname,
      'user_id' => $twitter_ownerid,
      'count' => 1000,
      'max_id' => $cnt,
      'include_rts' => 1,
      'exclude_replies' => false
  );

Ajatuksena on tarkistaa vanhin twiitti (min id:llä) ja palauttaa vain sitä vanhemmat twiitit, joten jos suoritat skriptejä useita kertoja, tuot kaikki twiitit.

Nyt meillä on tiedot valmiina ja voimme saada tämän skriptin toimimaan VPS-palvelimella muutaman tunnin välein (taajuus riippuu sinusta) käyttämällä crontab -e -komentoa.

Näytä twiitit WordPress-sivuilla

Nyt tämä sivu helloacm.com/tweets-history/ näyttää kaikki tietokannan puut. Tarvitset laajennuksen suorittaaksesi PHP/HTML:n WordPress-sivulla. Löydät helposti tällaisia ​​​​WordPress-laajennuksia.

Luo wordpress-sivu ja laita seuraava:

[ include ]tweets.php[ / include ]

Sitten meidän on asetettava PHP-skripti tähän yllä määritettyyn tweets.php-tiedostoon.

<php
// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
  global $wpdb;
  
  $query = "select count(1) from `tweets`";
  $total = $wpdb->get_var($query);
  
  $per = 50;
  $page = get_query_var('page');
  if (!$page) {
    $page = 1;
  }
  
  // pagination
  $totalpages = ceil($total / $per);
  if ($page > $totalpages) {
    $page = 1;
  }
  
  $lowerbound = ($page - 1) * $per;
  $upperbound = $lowerbound + $per;
  $lmt=" limit ". $lowerbound. ",". $per;
  
  $query = "select * from `tweets` order by `id` desc $lmt";
  
  $result = $wpdb->get_results($query);
  
  if ($result) {
    foreach ($result as $tweet) {
      $created_at = $tweet->created_at;
      $text = $tweet->text;
      $retweet_count = $tweet->retweet_count;
      // display tweets
      echo "$text - $created_at";
      if ($retweet_count > 0) {
        echo "($retweet_count Retweeted)";
      }
    }
  }  
  
  // show prev/next page links
  if ($page > 1) {
    echo "<a href='?page=".($page-1)."'>Newer Tweets</a> - ";
  }
  if ($page < $totalpages) {
    echo "<a href='?page=".($page+1)."'>Older Tweets</a>";
  }

Käytämme get_query_var(’page’) saadaksemme kyselymerkkijonon, jotta tiedämme, mitä sivua katselemme.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja