7 هک و کد کاربردی برای حرفه ای کردن خوراک rss وردپرس

feed - 7 هک و کد کاربردی برای حرفه ای کردن خوراک rss وردپرس

با سلام خدمت کاربران عزیز پروان وب امروز برای شما دوستان 7 هک و کد کاربردی برای حرفه ای کردن خوراک rss وردپرس را آماده کرده ایم که یک آموزش کاملا کاربردی می باشد خوراک سایت ابزاری برای دنبال کردن مطالب سایت ها و وبلاگ ها می باشد. قبل از اینکه google reader از بین برود کاربران زیادی از طریق rss محتوای جدید سایت ها را دنبال می کردند اما پس از نابودی گودر کاربران به سرویس های دیگری مثل feedly پناه آوردند که تا حدودی شبیه به گودر بودند. به هر حال rss سایت ها هنوز هم طرف داران خاص خودش را دارد که تعدادشان نیز کم نیست به همین دلیل با اهمیت دادن به خوراک سایت خود می توانید کاربران بیشتری را جذب کنید.

افزودن تصویر شاخص به خوراک RSS وردپرس

در حالت پیشفرض خوراک اکثر سایت ها به صورت متنی می باشند. وجود متن تنها می تواند کاربر را از خواندن تمامی محتوای آن مطلب منصرف کند. اما اگر تصویری برای هر مطلب در نظر گرفته شود, باعث می شود تا کاربر سریعتر با مطلب ارتباط برقرار کند و تشویق به خواندن ادامه مطلب شود. RSS پیشفرض سیستم مدیریت محتوای وردپرس نیز به صورت متنی می باشد, برای اینکه در feed وردپرس نوشته ها دارای تصویر شوند ما می توانیم از تصاویر شاخص استفاده کنیم. به این صورت که تصاویر شاخصی که برای مطالب قرار می دهیم را در rss نیز درج نماییم. برای این کار تنها کافی است تا کد زیر را در فایل فانکشن قالب فعلی یا افزونه اختصاصی سایت خود قرار دهید.

function parvan_post_thumbnail_feeds($content) {
    global $post;
    if(has_post_thumbnail($post->ID)) {
        $content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;
    }
    return $content;
}
add_filter('the_excerpt_rss', 'parvan_post_thumbnail_feeds');
add_filter('the_content_feed', 'parvan_post_thumbnail_feeds');

فقط به این نکته توجه داشته باشید که کدهای بالا حتما باید بین تگ باز و بسته php قرار گیرند. همچنین برای اینکه مشکلی برای سایت شما بوجود نیاید بهتر است تا قبل از انجام این تغییرات از فایل functions.php یک نسخه پشتیبان تهییه نمایید.

ایجاد تاخیر در انتشار مطالب در خوراک RSS وردپرس

برخی از اوقات اندکی پس از انتشار مطلبی, متوجه اشکالی در آن می شوید, اما با توجه به اینکه آن مطلب بلافاصله پس از زدن دکمه انتشار در خوراک وردپرس منتشر شده است دیگر نمی توانید آن را اصلاح کنید. همچنین به تازگی تعداد سایت هایی که محتوای سایت ها را از طریق rss کپی و در سایت خود منتشر می کنند افزایش یافته است و خیلی موارد دیگر که بهتر است برای رفع این قبیل مشکلات به دنبال یک روش موئثر باشیم. یکی از روش های موئثری که می تواند تا حدودی این مشکلات را رفع کند ایجاد تاخیر در انتشار مطالب در RSS سایت می باشد. برای این کار کافی است تا کد زیر را در فایل فانکشن قالب قرار دهید.

* /**
* * puplish the content in the feed later
* * $where ist default-var in WordPress (wp-includes/query.php)
* * This function an a SQL-syntax
* */
* function publish_later_on_feed($where) {
* global $wpdb;
*
* if ( is_feed() ) {
* // timestamp in WP-format
* $now = gmdate('Y-m-d H:i:s');
*
* // value for wait; + device
* $wait = '5'; // integer
*
* // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
* $device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
*
* // add SQL-sytax to default $where
* $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
* }
* return $where;
* }
*
* add_filter('posts_where', 'publish_later_on_feed');

افزودن المان های مختلف به خوراک RSS

با استفاده از این هک می توانید یک لینک برای بازگشت به سایت, کمی تبلیغات, دکمه شبکه های اجتماعی و در کل هر چیزی که دوست داشته باشید را به خوراک سایت خود اضافه کنید. برای این کار کافی است تا کد زیر را در فایل functions.php قرار دهید.

<?php
function insertAds($content) {
    $content = $content.'<hr /><a href="https://www.parvanweb.ir">به بازگردید</a><hr />';
    return $content;
}
add_filter('the_excerpt_rss', 'insertAds');
add_filter('the_content_rss', 'insertAds');
?>

محروم کردن انتشار مطالب یک دسته در rss وردپرس

اگر شما دسته ای دارید که نمی خواهید مطالب آن در feed اصلی سایت شما منتشر شود می توانید از این هک استفاده کنید.

function myFilter($query) {
    if ($query->is_feed) {
        $query->set('cat','10'); //Don't forget to change the category ID =^o^=
    }
return $query;
}

add_filter('pre_get_posts','myFilter');

کد بالا را باید در فایل فانکشن قرار دهید. برای تعیین دسته یا دسته هایی که می خواهید از rss حذف شوند هم باید ID آن دسته را به جای عدد ۱۰ وارد کنید. برای تعیین چند دسته هم می توانید از کاما در بین آنها استفاده کنید.

ساخت پست هایی اختصاصی برای مشترکین rss وردپرس

اگر دوست دارید برخی از مطالب را تنها به مشترکین rss سایت خود نشان دهید (مثلا برای افزایش تعداد مشترکین یا اطلاع دادن خبری به آنها) نیاز به ساخت یک دسته دارید که آن مطالب را در آن دسته منتشر کنید و ID آن دسته را در کد زیر قرار دهید.

// show post thumbnails in feeds
function diw_post_thumbnail_feeds($content) {
	global $post;
	if(has_post_thumbnail($post->ID)) {
		$content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;
	}
	return $content;
}
add_filter('the_excerpt_rss', 'diw_post_thumbnail_feeds');
add_filter('the_content_feed', 'diw_post_thumbnail_feeds');

سپس این کد را در فایل فانکشن کپی کنید تا مطالبی که از این به بعد در این دسته منتشر می شوند تنها برای مشترکین rss به نمایش در آیند.

استفاده از فید سایت های دیگر

این تکه کد سودمند از تجزه کننده فید وردپرس برای نمایش فید یک سایت دیگر در فید سایت شما استفاده می کند.

http://www.wprecipes.com/how-to-display-any-rss-feed-on-your-wordpress-blog

نمایش میانگین خوانندگان خوراک وردپرس توسط Feedburner

اگر شما هم از Feedburner برای خوراک rss سایت خود استفاده می کنید باید به این نکته توجه داشته باشید که در آیکن قیدبرنر تعداد خوانندگان یک روز قبل خوراک سایت شما نشان داده می شود, اما اگر می خواهید میانگین خوانندگان در ۷ روز گذشته را نشان دهید این هک می تواند به شما کمک کند. کد زیر را در فایل functions.php قالب قرار دهید.

function get_average_readers($feed_id,$interval = 7){
	$today = date('Y-m-d', strtotime("now"));
	$ago = date('Y-m-d', strtotime("-".$interval." days"));
	$feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&dates=".$ago.",".$today;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_URL, $feed_url);
	$data = curl_exec($ch);
	curl_close($ch);
	$xml = new SimpleXMLElement($data);
	$fb = $xml->feed->entry['circulation'];

	$nb = 0;
	foreach($xml->feed->children() as $circ){
		$nb += $circ['circulation'];
	}

	return round($nb/$interval);
}

حال کد زیر را در هر جایی که می خواهید میانگین خوانندگان rss نشان داده شوند قرار دهید. توجه داشته باشید که به جای rokesh اسم feed سایت خود را وارد کنید.

<?php
$nb = get_average_readers('parvanweb');
echo "I have ".$nb." RSS readers";
?>
امتیاز دهید