نمایش رندم پست ها به همراه صفحه بندی (pagination) در وردپرس
- نویسنده : msoltani در دسته بندی آموزش و هک, وردپرس
- بدون نظر و 181 بازدید
- ۹۳/۰۶/۱۱
- صفحه بندی وردپرس , کد های هک وردپرس , نمایش رندم پست
اگر خواسته باشین تا پست های سایتتون رو در صفحات ایندکس، آرشیو، جستجو و … به صورت رندم لیست کنید، اصلا کاری نداره شما می تونید در کوئری از
'orderby' => 'rand'
استفاده کنید. این کار راحته و مشکلی ایجاد نمی کنه، ولی اگر خواسته باشین این پست ها را صفحه بندی کنید به مشکل برمی خورید و اون اینه که برای هر صفحه کوئری اجرا می شه و ممکن است پست های نمایش داده شده در صفحات قبلی هم دوباره لیست بشن.
برای این منظور ما می تونیم از یک سشن (session) برای نگهداری پست های دیده شده استفاده کنیم و بر اساس اون از تابع RAND در mysql استفاده کنیم تا به نتیجه دلخواه برسیم. فیلتر posts_orderby در وردپرس ما رو برای رسیدن به این منظور کمک می کنه. قطعه کد زیر رو باید در فایل functions.php قرار بدید.
if( !session_id() ) { session_start(); } add_filter( 'posts_orderby', 'randomise_with_pagination' ); function randomise_with_pagination( $orderby ) { if( is_front_page() ) { if( ! get_query_var( 'paged' ) || get_query_var( 'paged' ) == 0 || get_query_var( 'paged' ) == 1 ) { if( isset( $_SESSION['seed'] ) ) { unset( $_SESSION['seed'] ); } } $seed = false; if( isset( $_SESSION['seed'] ) ) { $seed = $_SESSION['seed']; } if ( ! $seed ) { $seed = rand(); $_SESSION['seed'] = $seed; } $orderby = 'RAND(' . $seed . ')'; } return $orderby; }
==========
نمایش پست ها به ترتیب تصادفی و صفحه بندی آن
پست های تصادفی در وردپرس و صفحه بندی آن