خانه » آموزش وردپرس » نمایش آخرین نویسنده های فعال در وردپرس

نمایش آخرین نویسنده های فعال در وردپرس

سلامی دوبار ه به همه ی دوستان وردپرس پارسی

اگر شمادارای  سایت وردپرسی هستید که نویسندۀ زیادی دارد، امکانش هست بخواهید بدانید  کدام یک از آنها دارای فعالیت خوب  و تعداد مطلب بیشتری ارسال کرده است . یکی از راه های دستیابی به این اطلاعات این راه است  که چگونگی کش کردن اطلاعات با استفاده از WordPress Transients API را نشان می دهد به شرح زیر می باشد:

ابتدا فانکشن را در فایل functions.php بسازید. از قرار دادن آن در میان تگ  باز php اطمینان حاصل کنید :

[cc lang=”php” tab_size=”2″]function get_latest_authors( $number_of_authors = 10 ) {
$args = array(
‘orderby’ => ‘modified’,
‘post_type’ => ‘post’,
‘post_status’ => ‘publish’,
‘numberposts’ => ‘-1’
);

$count = 1;
$recent_posts = wp_get_recent_posts( $args );
$latest_authors_array = array();

foreach( $recent_posts as $the_post ) {
if ( $count == $number_of_authors ) break;
if ( ! in_array( $the_post[‘post_author’], $latest_authors_array ) ) {
$latest_authors_array[] =$the_post[‘post_author’];
$count++;
}
}

$latest_authors = ‘

      ‘;
      foreach( $latest_authors_array as $author_id ) {
      $latest_authors .= ‘

    • ‘.get_the_author_meta( ‘display_name’, $author_id ).’

‘;
}
$latest_authors .= ‘

‘;

return $latest_authors;
}[/cc]

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

حال باید اطلاعات بدست آمده را خروجی بدهید:

[cc lang=”php” tab_size=”2″]
[/cc]

از آنجایی که تابعی مانند این، هر بار که به آن نیاز می شود این فرایند را طی می کند، ما می توانیم از WordPress Transients API به منظور کش کردن اطلاعات به دست آمده، بهره بریم. با این راه، تابع با توجه به زمانی که برای انقضای transient تنظیم کرده ایم اجرا خواهد شد. برای انجام این عمل تنها چیزی که نیاز است کمی کدنویسی است :

[cc lang=”php” tab_size=”2″]function get_latest_authors( $number_of_authors = 10 ) {
if ( false === ( $latest_authors = get_transient( ‘latest_authors’ ) ) ) {

$args = array(
‘orderby’ => ‘modified’,
‘post_type’ => ‘post’,
‘post_status’ => ‘publish’,
‘numberposts’ => ‘-1’
);

$count = 1;
$recent_posts = wp_get_recent_posts( $args );
$latest_authors_array = array();

foreach( $recent_posts as $the_post ) {
if ( $count == $number_of_authors ) break;
if ( ! in_array( $the_post[‘post_author’], $latest_authors_array ) ) {
$latest_authors_array[] =$the_post[‘post_author’];
$count++;
}
}

$latest_authors = ‘

      ‘;
      foreach( $latest_authors_array as $author_id ) {
      $latest_authors .= ‘

    • ‘.get_the_author_meta( ‘display_name’, $author_id ).’

‘;
}
$latest_authors .= ‘

‘;

set_transient( ‘latest_authors’, $latest_authors, 60 * 60 * 1 ); // one hour
}
return $latest_authors;
}
[/cc]

با انجام تغییرات بالا، تابع ما در اول  وجود ترنزینت (transient) را چک می کند. در صورت بودن  ترنزینت، به اطلاعات دسته بندی شده بر می گردد . در غیر این صورت تابع را اجرا و اطلاعات به دست آمده را در ترنزینتی که پس از یک ساعت غیرفعال می شود(۶۰ * ۶۰ * ۱) ذخیره می کند. شما به راحتی می توانید با اصلاح آخرین پارامتر در تابعset_transient زمان غیر فعال شدن ترنزینت را تغییر دهید.

استفاده از ترنزینت برای ذخیره کردن اطلاعات بدست آمده، راهی سودمند  برای بالا بردن  سرعت سایت و کاهش تعداد عملیاتی است که مورد نیاز وردپرس است . این همان کاری است که اغلب  کدنویسان حرفه ای در وردپرس انجام می دهند.

موفق باشید …

دانلود فایل

درباره سید حامد حسینی

آقای وردپرس رو با دنیا عوض نمیکنم !

ارسال دیدگاه

ایمیل شما منتشر نخواهد شد فیلد های الزامی مشخص شده اند *

*

x

بیشتر بخوانید

نکاتی در راستای سئو مطالب سایت

نکاتی در راستای سئو مطالب سایت

امروزه بهینه سازی مطالب سایت یکی از دغدغه های مدیران هر سایت شده ، برای ...