رفتن به مطلب

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


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

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

لینک به ارسال
در 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
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...