تبلیغات تبلیغات
حراجی دامنه های ویژهمشاهده
آخرین ارسال های تالار مشاهده انجمن
معرفی وبسایت خرید آنلاین مواد و لوازم دندانپزشکی 0 پاسخ 2 بازدید اسکریپت مدیریت هاست رایگان 2 پاسخ 142 بازدید افزونه Coins MarketCap 1 پاسخ 409 بازدید درخواست پلاگین 4 پاسخ 675 بازدید اسکریپت vfm 5 پاسخ 771 بازدید تغییر جهت محتوا در وردپرس 1 پاسخ 418 بازدید افزونه ساخت شماره مجازی 14 پاسخ 1290 بازدید درخواست افزونه 1 پاسخ 621 بازدید بهترین رباط اینستاگرام 0 پاسخ 2 بازدید درخواست قالب با سبک کندو 1 پاسخ 878 بازدید
تبلیغات
تبلیغات تبلیغات

نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس

وردپرس , مقالات,آموزش,ترفند

سلام دوستان عزیز ، در این مقاله از آموزش وردپرس ، به نحوه نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس بدون استفاده از افزونه خواهیم پرداخت.

 

نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس

 

مقدمه:

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

 

شروع به کار

برای شروع کدنویسی باید ابتدا تصمیم بگیرید که کدهای شما کجا قرار میگیره ، میتونه داخل یکی از فایل های قالبتون باشه و یا به یک action hook بچسه و یا هر راهی که خودتون مناسب می دونید. من کدهای خودم را داخل فایل صفحه اول قالبم قرار میدم ، ما در این مقاله از پوسته twentyseventeen استفاده می کنیم و index.php را تغییر میدهیم.

در حال حاضر صفحه اصلی وب سایت من مشابه تصویر زیر هستش:

نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس

جمع آوری داده های مورد نیاز

در این مرحله قصد داریم لیستی از دسته بندی های اصلی موجود در وب سایتمون درست کنیم، برای این کار می تونیم از تابع get_categories() استفاده کنیم ولی ما فقط دسته بندی های اصلی رو لازم داریم و به زیر دسته بندی ها احتیاجی نداریم برای همین از تابع get_terms() و مقداردهی به آرگومان parent کارمون رو ادامه میدیم.

<?php
$terms = get_terms( array( 
 'taxonomy' => 'category',
 'parent'   => 0
) );
if ( $terms ) {
 
 echo '<h3>مطالب تصادفی</h3>';
 echo '<ul class ="randomposts">';
 
 foreach( $terms as $term ) { 
 }
} 
?>

صورت کلی کد ما مشابه بالا خواهد بود، کد بالا دسته بندی های اصلی وب سایت ما رو استخراج کرده و در صورت وجود دسته بندی عبارت “مطالب تصادفی” رو به عنوان تیتر این بخش چاپ می کنه و در بعد یک حلقه برای اضافه کردن کدهای بعدی جهت نمایش مطالب تصادفی ایجاد می کنه.

 

آماده سازی Query

قدم بعدی آماده کردن Query و تعریف آرگومان های لازم جهت استخراج مطالب تصادفی هستش، این درون حلقه foreach در کد بالا انجام میشه و از متغییر $term که در کد بالا تعریف شده بود استفاده می کنه.

 

کدهای زیر درون حلقه foreach اضافه میشه:

$args = array(
  'post_type' => 'post',
  'orderby' => 'rand',
  'posts_per_page' => 1,
  'tax_query' => array(
    array(
      'taxonomy' => 'category',
      'field'    => 'slug',
      'terms'    => $term,
    ),
 )
);

آرگومان ها :

  • post-type : فقط مطالب با post-type برابر post رو استخراج می کنه
  • Orderby: نحوه مرتب سازی که به صورت تصادفی تنظیم کردیم
  • posts_per_page : تعداد پست در هر صفحه که برابر 1 هستش.

 

اجرای Query در حلقه

حالا که Query خودمون رو آماده کردیم وقته اجرا Query درون حلقه foreach هستش، برای اینکار کدهای زیر رو بعد از تعریف آرگومان ها اضافه می کنیم:

// run the query
$query = new WP_query ( $args );

if ( $query->have_posts() ) {
	
	while ( $query->have_posts() ) : $query->the_post();
	
		echo '<li>' . $term->name . ': <a href=' . get_the_permalink() . '">' . get_the_title() . '</a></h3>';
							
	endwhile;
	rewind_posts();
	
}

کدهای بالا یک لیست از مطالب تصادفی با عنوان مطلب و لینک مشاهده مطلب تولید می کنند ولی یه مشکل وجود داره و اون هم نمایش پست های تکراری در قطعه کد بالا هستش.

 

جلوگیری از تکرار مطالب

وقتی یک مطلب دارای چند دسته بندی باشه ممکنه به صورت تکراری نمایش داده بشه ، برای اینکه از تکرار مطالب با دسته بندی های متفاوت جلوگیری کنیم ، باید سه خط کد جدید در قسمت های مختلف اضافه کنیم.

 

کد اول رو بعد از get_terms() برای تعریف یک آرایه جدید اضافه میکنیم.

$do_not_duplicate = array();

کد دوم رو داخل Query جهت مقداردهی به یک آرگومان جدید برای جلوگیری از تکراری بودن مطالب اضافه می کنیم.

'post__not_in' => $do_not_duplicate,

کد سوم رو بعد از echo کردن داخل حلقه اضافه می کنیم.

$do_not_duplicate[] = $post->ID;

کد نهایی – نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس :

بعد از اضافه کردن کدهای بالا نسخه نهایی کدهای ما جهت نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس به صورت زیر خواهد بود:

<section class="random>">
	
	<?php
	
	$terms = get_terms( array( 
		'taxonomy' => 'category',
		'parent'   => 0
	) );
	
	$do_not_duplicate = array();
	
	if ( $terms ) {
		
		echo '<h3>مطالب تصادفی</h3>';
		echo '<ul class ="randomposts">';
		
			foreach( $terms as $term ) {	
			
				// define the arguments
				$args = array(
					'post_type' => 'post',
					'orderby' => 'rand',
					'posts_per_page' => 1,
					'post__not_in' => $do_not_duplicate,
					'tax_query' => array(
						array(
							'taxonomy' => 'category',
							'field'    => 'slug',
							'terms'    => $term,
						),
					),
				);
				
				// run the query
				$query = new WP_query ( $args );
				
				if ( $query->have_posts() ) {
					
					while ( $query->have_posts() ) : $query->the_post();
					
						echo '<li>' . $term->name . ': <a href=' . get_the_permalink() . '">' . get_the_title() . '</a></h3>';
						$do_not_duplicate[] = $post->ID;
											
					endwhile;
					rewind_posts();
					
				}
				
			}
			
		echo '</ul>';
		
	}			
	?>	
	
</section>

بعد از افزودن قطعه کد بالا قبل از فوتر در قالب twentyseventeen صفحه نخست باید مشابه تصویر زیر باشد:

نمایش مطالب تصادفی از دسته بندی های متفاوت در وردپرس

جمع بندی:

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

این مقاله چقدر براتون مفید بود؟

از ۱ تا ۵ امتیاز بدید.

میانگین رتبه 0 / 5. تعداد رای : 0

تا حالا کسی رای نداده! اولین نفر شما باشید.

دانلود

هاست ارزان، لایت اسپید، سرور مجازی منطبق با اسکریپت های 20script کلیک کنید >
مطلب مفیدی بود ؟
نویسنده : تیم محتوای 20اسکریپت 0 وردپرس , مقالات,آموزش,ترفند
لینک کوتاه مطلب : https://www.20script.ir/?p=48663
کلمات کلیدی پست :
مطالب مرتبط
6,533استفاده از یک صفحه اختصاصی بعنوان صفحه اصلی در وردپرس تاریخ : 2014/12/1
3,856آیا استفاده از تگ H1 ضروری هست؟ تاریخ : 2020/04/27
3,120نصب چند وردپرس در یک دیتابیس تاریخ : 2019/09/26
7,609افزونه ساخت منو واکنش گرا در وردپرس تاریخ : 2017/01/14
5,448آموزش تغییر آدرس پیشفرض wp-content وردپرس تاریخ : 2018/07/29
7,525افزودن درصد پیشرفت مطالب در وردپرس با افزونه Content Progress تاریخ : 2017/07/16
4,312پوسته وبلاگی و مجله خبری Admania برای وردپرس تاریخ : 2019/12/4
6,796حل مشکل جاستیفای در وردپرس و justify کردن متن در گوتنبرگ تاریخ : 2019/08/14
4,848آموزش ساخت جدول قیمت گذاری در وردپرس تاریخ : 2019/08/1
13,278قالب رایگان اندرویدیها برای وردپرس تاریخ : 2014/04/27
3,448آموزش ساخت ارائه در وردپرس بدون نیاز به PowerPoint تاریخ : 2020/04/9
10,037هدایت کاربران به صفحه خاص پس از ورود با افزونه Peter’s Login Redirect تاریخ : 2017/08/29
برخی از قالب های وبلاگ - بیست اسکریپت
قالب عشق بین انگشت هاقالب عشق بین انگشت ها
قالب دخترونه و آرایشقالب دخترونه و آرایش
قالب زیبای ماشینقالب زیبای ماشین
قالب فانتزی و طنز چِشمقالب فانتزی و طنز چِشم
قالب دختر رویاییقالب دختر رویایی
قالب وبلاگ دکوراسیونقالب وبلاگ دکوراسیون
قالب وبلاگ کلبه و درختقالب وبلاگ کلبه و درخت
قالب دختر زیباقالب دختر زیبا
قالب پسرونه غمگینقالب پسرونه غمگین
قالب عاشقانه قلبقالب عاشقانه قلب
تبلیغات
تبلیغات