alishademan

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

2 پست در این موضوع قرار دارد

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

0

به اشتراک گذاری این پست


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

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری