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

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

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

اگر شمادارای  سایت وردپرسی هستید که نویسندۀ زیادی دارد، امکانش هست بخواهید بدانید  کدام یک از آنها دارای فعالیت خوب  و تعداد مطلب بیشتری ارسال کرده است . یکی از راه های دستیابی به این اطلاعات این راه است  که چگونگی کش کردن اطلاعات با استفاده از 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 زمان غیر فعال شدن ترنزینت را تغییر دهید.

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

موفق باشید …

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

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

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

آموزش اضافه کردن شکلک های لایک فیس بوک به وردپرس

در این آموزش قصد داریم تا به شما کاربران گرامی آموزش دهیم ، که چطور …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوره رایگان طراحی سایت از صفر تا صد

دوره رایگان طراحی سایت از صفر تا صد

برای شرکت در دوره رایگان آموزش طراحی قالب وردپرس ( طراحی سایت ) ایمیل خود را وارد کنید

اشتراک شما با موفقیت انجام شد ( ایمیل خود را چک کنید)