رفتن به مطلب

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


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

در 40 دقیقه قبل، miraziz گفته است :

باشه. اگر اذیت کننده است بیخیالش باشید. با همون کد عالی که دادید هم مخاطب درگیر میشه

خوب تابع زیر میره توی فایل functions.php

function mehran_get_last_child_id($post = null) {
	
	$post = get_post($post);
	
	if(!$post)
		
		return 0;
		
	$cats = get_the_category($post->ID);
	
	if(empty($cats))
		
		return 0;
		
	$childs = array();
		
	foreach($cats as $cat)
	
		if($cat->parent != 0)
			
			$childs[] = $cat->term_id;
			
	if(empty($childs))
		
		return 0;
		
	return max($childs);
	
}

اون کد قبل از if حلقه هم میشه کد زیر:

$child_cat = mehran_get_last_child_id(get_queried_object());

$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat
));

$query2 = new WP_Query(array(
	'post_type' => 'post',
	'orderby' => 'rand',
	'posts_per_page' => 2,
	'post_status' => 'publish'
));

$random = new WP_Query();

$random->posts = array_merge($query1->posts, $query2->posts);

$random->post_count = count($random->posts);

 

موفق باشید

لینک به ارسال
در 17 دقیقه قبل، mehran-b گفته است :

خوب تابع زیر میره توی فایل functions.php

اون کد قبل از if حلقه هم میشه کد زیر:

قربون دستت آقا مهران. عالی عالی کار کرد. 

فقط من برای مستثنی کردن چند دسته کد نمایش دوتای اولی را به صورت زیر تغییر دادم. یعنی دو تا ردیف cat است. مشکلی که نداره؟


$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat,
	'cat' => '-1261,-193,-6,-4,-3'
));

 

لینک به ارسال
در 6 دقیقه قبل، miraziz گفته است :

فقط من برای مستثنی کردن چند دسته کد نمایش دوتای اولی را به صورت زیر تغییر دادم. یعنی دو تا ردیف cat است. مشکلی که نداره؟

به شکل زیر عمل کنید.

$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat,
	'category__not_in' => array(1261, 193, 6, 4, 3)
));

 

لینک به ارسال
در 9 دقیقه قبل، mehran-b گفته است :

به شکل زیر عمل کنید.


$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat,
	'category__not_in' => array(1261, 193, 6, 4, 3)
));

 

ممنون. فقط این کد شما با اونی که من از روی کدهای قبلی جایگذاری کرده بودم یک تفاوتی داره. تو کد شما وقتی به مطلبی از دسته‌ای مستثنا شده می‌روم در بخش عناوین مرتبط هم از چهار پست دو پست می آره. که طبیعتا تشخیص میده مطلبی که مخاطب در حال مشاهده از ا دسته‌های مستثنی است و دو تای اولی را کلا نشون نمیده.ولی تو کدی که من تغییر دادم هر چهارتا را نشون میده و اون عنوان اولی را از سایر دسته ها گلچین میکنه.

و جالبتر هم اینکه تو کد شما تنها برای دسته 1261 اون کار را میکنه(فقط دوتا نشون میده). در باقی دسته ها مانند کدی که من تغییر دادم عمل میکنه یعنی 4عنوان را هم نشون میده.

لینک به ارسال
در 5 دقیقه قبل، miraziz گفته است :

ممنون. فقط این کد شما با اونی که من از روی کدهای قبلی جایگذاری کرده بودم یک تفاوتی داره. تو کد شما وقتی به مطلبی از دسته‌ای مستثنا شده می‌روم در بخش عناوین مرتبط هم از چهار پست دو پست می آره. که طبیعتا تشخیص میده مطلبی که مخاطب در حال مشاهده از ا دسته‌های مستثنی است و دو تای اولی را کلا نشون نمیده.ولی تو کدی که من تغییر دادم هر چهارتا را نشون میده و اون عنوان اولی را از سایر دسته ها گلچین میکنه.

و جالبتر هم اینکه تو کد شما تنها برای دسته 1261 اون کار را میکنه(فقط دوتا نشون میده). در باقی دسته ها مانند کدی که من تغییر دادم عمل میکنه یعنی 4عنوان را هم نشون میده.

در اصل باید چک کنیم متغییر child_cat مقدارش یکی از اون 5 آیدیه یا نه اگر بود صفر کنیم مقدار child_cat رو اگر نبود که هیچی.

$child_cat = mehran_get_last_child_id(get_queried_object());

$child_cat = in_array($child_cat, array(1261, 193, 6, 4, 3)) ? 0 : $child_cat;

$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat
));

$query2 = new WP_Query(array(
	'post_type' => 'post',
	'orderby' => 'rand',
	'posts_per_page' => 2,
	'post_status' => 'publish'
));

$random = new WP_Query();

$random->posts = array_merge($query1->posts, $query2->posts);

$random->post_count = count($random->posts);

با کد فوق اگر آیدی آخرین دسته فرزند مطلب جاری یکی از اون 5 آیدی استثنا باشه کل 4 مطلب رندوم میشه.

لینک به ارسال
  • 3 هفته بعد...
در در 8/19/2018 at 00:03، mehran-be گفته است :

خواهش میکنم.

موفق باشید.

سلام. آقا مهران یک سوالی داشتم. کد آخری که ارسال کردید که قرار بود از 4عنوان 2تای اولیش مربوط به دسته‌ای باشه کاربر در حال مشاهده شعری از آن دسته است. فقط این کد گاها خود همان مطلب را هم تکرار می‌کند. یعنی مثلا اگر من در حال بازدید مطلبی با عنوان «یک پست آزمایشی» باشم در قسمت مطالب مرتبط اولین عنوان را هم همان «یک پست آزمایشی» نشون میده. میشه مانع کار شد یا سخته؟

5b8cbea775cb3_Screenshot(87).png.cb728b55587e32a327d093ed2594f7e1.png

 

لینک به ارسال
در در 9/3/2018 at 09:25، miraziz گفته است :

سلام. آقا مهران یک سوالی داشتم. کد آخری که ارسال کردید که قرار بود از 4عنوان 2تای اولیش مربوط به دسته‌ای باشه کاربر در حال مشاهده شعری از آن دسته است. فقط این کد گاها خود همان مطلب را هم تکرار می‌کند. یعنی مثلا اگر من در حال بازدید مطلبی با عنوان «یک پست آزمایشی» باشم در قسمت مطالب مرتبط اولین عنوان را هم همان «یک پست آزمایشی» نشون میده. میشه مانع کار شد یا سخته؟

اینو تست کنید.

$child_cat = mehran_get_last_child_id(get_queried_object());

$child_cat = in_array($child_cat, array(1261, 193, 6, 4, 3)) ? 0 : $child_cat;

$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat,
	'post__not_in' => array(get_queried_object_id())
));

$query2 = new WP_Query(array(
	'post_type' => 'post',
	'orderby' => 'rand',
	'posts_per_page' => 2,
	'post_status' => 'publish',
	'post__not_in' => array(get_queried_object_id())
));

$random = new WP_Query();

$random->posts = array_merge($query1->posts, $query2->posts);

$random->post_count = count($random->posts);

 

لینک به ارسال
  • 3 هفته بعد...
در در 9/4/2018 at 23:48، mehran-b گفته است :

اینو تست کنید.

 

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

$child_cat = in_array($child_cat, array(1261, 193, 6, 4, 3)) ? 0 : $child_cat;

 

لینک به ارسال
در در 9/24/2018 at 09:56، miraziz گفته است :

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


$child_cat = in_array($child_cat, array(1261, 193, 6, 4, 3)) ? 0 : $child_cat;

 

سلام

 

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

$child_cat = mehran_get_last_child_id(get_queried_object());

$child_cat = in_array($child_cat, array(1261, 193, 6, 4, 3)) ? 0 : $child_cat;

$query1 = new WP_Query(array(
	'post_type' => 'post',
	'posts_per_page' => 2,
	'orderby' => 'rand',
	'post_status' => 'publish',
	'cat' => $child_cat,
	'post__not_in' => array(get_queried_object_id()),
	'ignore_sticky_posts' => 1
));

$query2 = new WP_Query(array(
	'post_type' => 'post',
	'orderby' => 'rand',
	'posts_per_page' => 2,
	'post_status' => 'publish',
	'post__not_in' => array(get_queried_object_id()),
	'ignore_sticky_posts' => 1
));

$random = new WP_Query();

$random->posts = array_merge($query1->posts, $query2->posts);

$random->post_count = count($random->posts);

 

لینک به ارسال
در 15 ساعت قبل، mehran-b گفته است :

سلام

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

 

سلام.از کد بالا استفاده کردم ولی باز هیچ تغییری نکرد.

ویرایش شده توسط miraziz
لینک به ارسال
در 9 ساعت قبل، miraziz گفته است :

سلام.از کد بالا استفاده کردم ولی باز هیچ تغییری نکرد.

عذر میخوام غلط املایی داشت.

کد فوق رو اصلاح کردم الان میتونید استفاده کنید.

لینک به ارسال

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

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

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

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

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

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

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

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

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