رفتن به مطلب

نمایش تصادفی محتوا


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

سلام. فایل index من برای نمایش کانتنت چنین ساختاری داره


<div class="all-content">
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post(); ?>
<div class="content"><a href="<?php the_permalink() ?>">
<?php the_post_thumbnail( 'thumbnail');?>
</a>
<div class="content-title"><a href="<?php the_permalink() ?>">
<?php the_title(); ?>
</a></div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>

برای اینکه تو صفحه اصلی فقط مطالبی باشه که id برچسب اونها 20 باشه از کد زیر تو فایل function استفاده کردم


<?php add_action( 'pre_get_posts', 'wp_exclude_tagged_posts' );
function wp_exclude_tagged_posts( $query ) {
if ( $query->is_main_query() && $query->is_home() ) {
$query->set( 'tag__in', array( 20 ) );
}
}
?>

الان هر محتوایی که id برچسبش 20 هست رو به ترتیب تاریخ نمایش میده. ولی من میخوام با هر بار لود شدن سایت

ترتیب پست ها تصادفی باشه... حالا باید چیکار کنم؟

لینک به ارسال

بسیار بسیار ممنون از شما مشکلم حل شد.

حالا یه سوال دیگه . اگه بخوام تو دسته ها وارد بشم و مطالبی که تو دسته ها وجود دارن بصورت random نمایش داده بشن چیکار باید کنم؟؟؟؟؟

ساختار فایل archive من دقیقا مثل ایندکس هست که بالا کدش رو نوشتم.

لینک به ارسال

اکشنش جا موند :)


add_action( 'pre_get_posts', 'wp_exclude_tagged_posts' );
function wp_exclude_tagged_posts( $query ) {
if ( $query->is_main_query() && $query->is_home() || $query->is_category() ) {
$query->set( 'tag__in', array( 20 ) );
$query->set( 'orderby', 'rand' );
}
}

از این کد که استفاده میکنم صفحه اولم مطالبش به شکل رندوم هست اما الان تو دسته ها که میرم دیگه هیچی نشون نمیده (حتی بر اساس تاریخ)

لینک به ارسال

تست کردم و مشکلی نداشت به هر حال به این صورت تست کنید


add_action( 'pre_get_posts', 'wp_exclude_tagged_posts' );
function wp_exclude_tagged_posts( $query ) {
if ( $query->is_main_query() && $query->is_home() ) {
$query->set( 'tag__in', array( 20 ) );
$query->set( 'orderby', 'rand' );
}
if ( is_archive(category-i.d) ) {
$query->set( 'tag__in', array( 20 ) );
$query->set( 'orderby', 'rand' );
}
}

لینک به ارسال
تست کردم و مشکلی نداشت به هر حال به این صورت تست کنید
 add_action( 'pre_get_posts', 'wp_exclude_tagged_posts' ); function wp_exclude_tagged_posts( $query ) { if ( $query->is_main_query() && $query->is_home() ) { $query->set( 'tag__in', array( 20 ) ); $query->set( 'orderby', 'rand' ); } if ( is_archive(category-i.d) ) { $query->set( 'tag__in', array( 20 ) ); $query->set( 'orderby', 'rand' ); } } 

بسیار ممنونم دوست عزیز

این کد جواب داد

البته


$query->set( 'tag__in', array( 20 ) );

رو از خط یکی مونده به آخر پاک کردم.

لینک به ارسال

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

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

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

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

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

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

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

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

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