alishademan 72 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 سلام ایا امکان این وجود داره که چندتا از تگهایی که بیشتر تو پست ها ازشون استفاده شده در هفته رو نشون بدیم ... نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در شهریور 96 گزارش بازنشر ارسال شده در شهریور 96 (ویرایش شده) در 5 ساعت قبل، alishademan گفته است : سلام ایا امکان این وجود داره که چندتا از تگهایی که بیشتر تو پست ها ازشون استفاده شده در هفته رو نشون بدیم ... اولا بگم که این کار فشار بالایی به سرور میاره. تابع زیر رو داخل فایل functions.php زیر <?php قرار بدید. function mehran_most_repeated_tag($device, $number = 10) { $args = array( 'nopaging' => 1, 'fields' => 'ids', 'date_query' => array( array( 'after' => $device . ' ago', ), ), ); $query = new WP_Query($args); $post_ids = $query->posts; if(empty($post_ids)) return; foreach($post_ids as $post_id) { $tag = wp_get_post_tags($post_id, array('fields' => 'ids')); if($tag !== array()) $tag_ids[] = $tag; } if(empty($tag_ids)) return; $merge_tag_ids = array_reduce($tag_ids, 'array_merge', array()); $count_repeat = array_count_values($merge_tag_ids); arsort($count_repeat, SORT_NUMERIC); $most_repeated_tag_ids = array_keys($count_repeat); if(count($most_repeated_tag_ids) > $number) $most_repeat = array_slice($most_repeated_tag_ids, 0, $number); else $most_repeat = $most_repeated_tag_ids; $tag_html = ''; foreach($most_repeat as $tag_id) $tag_html .= '<a href="' . get_tag_link($tag_id) . '">' . get_tag($tag_id)->name . '</a>'; return $tag_html; } سپس در هر جایی که قصد دارید پرتکرار ترین تگ ها رو نشون بدید از کد زیر استفاده کنید: <?php echo mehran_most_repeated_tag('1 week'); ?> تابع دارای یک پارامتر اجباری و یک پارامتر اختیاری هست. پارامتر اجباری بازه زمانی مورد نظر: mehran_most_repeated_tag('1 day'); // پرتکرار ترین تگ های 1 روز گذشته mehran_most_repeated_tag('2 days'); // پرتکرار ترین تگ های 2 روز گذشته mehran_most_repeated_tag('2 week'); // پرتکرار ترین تگ های 2 هفته گذشته mehran_most_repeated_tag('3 months'); // پرتکرار ترین تگ های 2 ماه گذشته mehran_most_repeated_tag('1 year'); // پرتکرار ترین تگ های 1 سال گذشته mehran_most_repeated_tag('2 year'); // پرتکرار ترین تگ های 2 سال گذشته که میتونید از الگویی که در بالا نوشتم استفاده کنید (هر چه بازه زمانی بزرگتر شود پردازش برای پیدا کردن تگ ها بیشتر شده و فشار بیشتری به سرور می آید). پارامتر دوم تعداد تگ های خروجی هست که به صورت پیشفرض عدد 10 هست ولی میتونید به شکل زیر افزایشش بدید: <?php echo mehran_most_repeated_tag('1 week', 20); ?> مثلا در مثال بالا 20 تگ پرتکرار 1 هفته گذشته نمایش داده می شود. موفق باشید ویرایش شده شهریور 96 توسط mehran-b 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .