رفتن به مطلب

نمایش تگ های بیشتر استفاده شده در هفته


پست های پیشنهاد شده

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

لینک به ارسال
در 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 هفته گذشته نمایش داده می شود.

 

موفق باشید

ویرایش شده توسط mehran-b
  • امتیاز 1
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...