پلاگین‌های بیشماری در مخزن وردپرس برای توییتر وجود داره که بطور کلی میشه گفت اکثرا میان کارهای دیگه‌ای رو که ما هیچ نیازی به اون‌ها نداریم رو هم انجام‌میدن. دلیل دیگه‌ای که ما میخوایم بیایم و خودمون یه اسکریپت واسه استفاده از توییترمون بنویسیم هم اینه که پلاگین‌ها عموما میان و محتوای توییترِ ما رو توی یه قالبِ اختصاصی‌ای که خودشون تعریف‌کردن به نمایش‌میزارن و دیگه ما قادر به این نیستیم که توییت‌مون رو به شکل دلخواهمون به نمایش دربیاریم! دلیل دیگه‌ای که برای این کار وجودداره هم اینه که چون ما خودمون داریم مستقیم از ای‌پی‌آی توییتر توییت رو میگیریم دیگه هیچ نیازی به فعال‌سازی و تاییدُ این‌جور کارا نداریم و میتونیم به‌راحتی توی یه لیست به نمایش توییت‌هامون بپردازیم و دلیل آخری هم که از همه اونها مهم‌تره اینه که ما داریم توی ایران زندگی می‌کنیم و توییتر به اصطلاح پالایش شده :ی و هیچ دسترسی‌ای بهش نداریم؛ پس میشه گفت اکثر پلاگین‌ها هم واسه ما غیرفعال هستن شروع کار با سایدبار

اول بهتره بگم که ما می‌تونیم توییت‌‌هامون رو هرجا که خواهان اون بودیم به‌نمایش‌بزاریم و به عنوان مثال با فایل سایدبار کار رو شروع‌کردیم. آغاز کد ما جایی هست که شما می‌خواین نمایش توییت رو داشته‌باشین. پس کد زیر رو به اونجا اضافه‌کنین.


کد PHP:
<ul id="tweets">
    <?php
    
/*
     * JSON list of tweets using:
     *         http://dev.twitter.com/doc/get/statuses/user_timeline
     */

    // Configuration.
    
$numTweets 3;
    
$name '3alee';
    
$transName 'list-tweets'// Name of value in database.
    
$cacheTime 5// Time in minutes between updates.


خب ما اومدیم و به‌وسیله تگ <ul> یه آماده‌سازیِ اولیه انجام دادیم تا بتونیم به توییت‌ها یه قالب و شکل بدیم. توی قسمت پیکربندی یا کانفیگ هم اومدیم یه سری متغیر ها رو تعریف‌کردیم که کاملا ۲ تای اول واضح‌هستن. اولی تعداد توییت هست و بعدی هم نام‌کاربری شما در توییتر. ۲ تای بعدی هم به Transients مربوط میشه و توی اولی تعریف کردیم که که توییت‌ها رو در پایگاه‌داده یا دیتابیس با نام list-tweets ذخیره‌کن و در قسمت چهارم زمان بروزرسانی مطرح‌شده و الان روی ۵ دقیقه تنظیمه. بهتره که همین زمان باقی بمونه.
Transients یکی از بزرگترین ویژگی‌های وردپرسه که به ما اجازه میده تا یه مقداری رو توی پایگاه‌داده‌مون ذخیره‌کنیم و بعد از یه زمان محدودی اون رو پاکش‌کنیم. پس این امکان رو به ما میده که به راحتی از کَش استفاده‌کنیم.
توییتر ما رو محدود کرده نسبت به تقاضایی که واسش میفرستیم. ما هم اومدیم و با ای‌پی‌آی توییتر و با ویژگی Transients وردپرس نتیجه‌ی تقاضایی که واسه توییتر میفرستیم رو تا ۵ دقیقه ذخیره‌کردیم و بعد از ۵ دقیقه شما باز شاهد توییت‌های جدید هستین.
بررسی کَش

اینجا میخوایم بیایم و یه دستور بدیم به وردپرس و بهش بگیم برو یه نگاه به Transients بنداز. اگه وجود داره که هیچی؛ مقدارهاش رو بیار و برای ما نشون‌بده و اگرم وجود نداره زود برو و از توییتر مقدار ها رو بگیر.

کد PHP:
// Do we already have saved tweet data? If not, lets get it.
if(false === ($tweets get_transient($transName) ) ) : 



گرفتن اطلاعات از توییتر

در ۲ مرحله بروزرسانی و ذخیره توییت‌های ما انجام میشه. مرحله اول اینه که میره همه اطلاعات رو از توییتر میگیره و مرحله دوم هم انتخاب بخش‌هایی هست که ما بهش احتیاج داریم و میخوایم قالب‌بندی کنیم.

کد PHP:
// Get the tweets from Twitter.
$json wp_remote_get("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=$name&count=$numTweets");

// Get tweets into an array.
$twitterData json_decode($json['body'], true); 



توی این کد مهم‌ترین بخش رو خط دوم تشکیل میده که ما میخوایم به‌وسیله تابع wp_remote_get() اجازه بگیریم تا یه سری اطلاعات رو دریافت‌کنیم. توی خط پنجم هم اومدیم و به‌وسیله json_decode() اطلاعات رو گرفتیم و به یه مقداری تبدیل‌کردیم که برامون قابل‌استفاده باشه.
لازمه بگم که این کد جزء PHP 5 محسوب‌میشه؛ پس اگه خطا گرفتین هنگام استفاده، واسه اینه که باید PHPتون ورژن ۵ باشه و نیست.
ذخیره قسمت‌های مورد نیاز

اطلاعات توییت شامل ۵ قسمت‌میشه که ما میخوایم برای هر توییت این موارد رو دریافت کنیم. البته شما طبق نیازی که دارین می‌تونین از هرکدوم که خواستین استفاده ببرین.
نام‌کاربری
آواتار
پیغام توییت
لینک موجود در توییت
زمان ارسال توییت
اجازه‌بدین تا ما بیایم و از همه این موارد استفاده‌ببریم برای مثال. بعد به توضیح هرکدوم میپردازم و شما می‌تونین طبق نیازتون گزینه‌ها رو رد کنین.




کد PHP:
// Now update the array to store just what we need.
foreach ($twitterData as $tweet) :
    
// Core info.
    
$name $tweet['user']['name'];
    
$permalink 'http://twitter.com/#!/'$name .'/status/'$tweet['id_str'];

    
/* Alternative image sizes method: http://dev.twitter.com/doc/get/users/profile_image/:screen_name */
    
$image $tweet['user']['profile_image_url'];

    
// Message. Convert links to real links.
    
$pattern '/http:(\S)+/';
    
$replace '<a href="$%7B0%7D" target="_blank" rel="nofollow">${0}</a>';
    
$text preg_replace($pattern$replace$tweet['text']);

    
// Need to get time in Unix format.
    
$time $tweet['created_at'];
    
$time date_parse($time);
    
$uTime mktime($time['hour'], $time['minute'], $time['second'], $time['month'], $time['day'], $time['year']);

    
// Now make the new array.
    
$tweets[] = array(
                    
'text' => $text,
                    
'name' => $name,
                    
'permalink' => $permalink,
                    
'image' => $image,
                    
'time' => $uTime
                    
);
endforeach; 

خط چهارم و پنجم برمیگرده به نام شما در توییتر و باعث میشه نام در یک آرایه ذخیره بشه.
خط هشتم به آواتار شما در توییتر برمیگرده که سایز اصلی اون روی ۴۸*۴۸ تنظیم شده. اگه شما میخواین از سایزهای دیگه استفاده‌ببرین اینجا (+) رو بخونین.
خط دهم به گرفتن متن توییت‌ها برمیگرده.
خط پانزدهم هم به زمان ارسال توییت مربوط میشه.
در خط بیست‌ویکم هم اومدیم و این ۵ قسمت از اطلاعات رو توی یه آرایه به‌صورت جداگانه ذخیرشون کردیم.
در پایان ما می‌خوایم مقادیرمون رو توی یه Transients جدید ذخیره‌کنیم و شرطمون رو پایان بدیم.

کد PHP:
    // Save our new transient.
    
set_transient($transName$tweets60 $cacheTime);
endif; 



نمایش توییت‌ها

حالا که ما تمام اطلاعات مورد نیازمون رو داریم فقط یه مسئله می‌مونه و اون هم نمایش هست براساس فرمتی که دلخواهمونه. در زیر شما می‌تونین نحوه نمایش رو ببینین:

کد PHP:
// Now display the tweets.
foreach($tweets as $t) : ?>
    <li>
        <img src="<?php echo $t['image']; ?>" width="48" height="48" alt="" />
        <div class="tweet-inner">
            <p>
                 <?php echo $t['name'] . ': '$t['text']; ?>
                <span class="tweet-time"><?php echo human_time_diff($t['time'], current_time('timestamp')); ?> پیش
            </p>
        </div><!-- /tweet-inner -->
    </li>
<?php endforeach; ?>
</ul>

<p><a href="http://twitter.com/#!/<?php echo $name?>">[ مرا در توییتر دنبال‌کنید ]</a></p>


از کدهای بالا هیچ‌کذوم اونقدر پیچیده نیست. ما فقط اومدیم و هر تویتیت رو توی یه لیست ( <li> ) قرار دادیم و اطلاعات اون رو به نمایش گذاشتیم. اگه شما دلتون‌میخواد تا فقط متن توییت‌تون به نمایش دربیاد کافیه تا خط چهارم که مربوط به آواتار میشه رو پاک‌کنین و همینطور name رو از خط هفتم. توی خط هشتم با استفاده از یک عملکرد عالی وردپرس به نام human_time_diff() اومدیم زمان رو تلفیق‌کردیم و به حالت توییتری برگردوندیمش.
و حالا کار ما تموم میشه. شما میتونین کد کامل رو هم که هیچ حالت‌خاصی روی اون اعمال‌نشده رو از اینجا (+) دریافت‌کنین یا اینکه بشینین دونه‌به‌دونه کدهای بالا رو پشت سرهم بچینینشون :ی
امیدوارم که این‌آموزش بتونه نقش خوبی برای کمک به شما داشته‌باشه. خیلی خوشحال‌میشم اگه مشکلی‌دیدین سریع اعلام‌کنین تا برطرف بشه. موفق باشین