آشنایی با تابع وردپرسی wp reset query

wp-query-wpmen.ir

()wp_reset_query اطلاعات  wp_query$ و ارسال داده های global  را به پرس و جو اصلی باز می گرداند.این تابع باید بعد از تابع ()query_posts  فراخوانی شود.همانطور که در مثال های زیر اشاره شده  به شدت تشویق به استفاده از فیلتر pre_get_posts برای تغییر پارامترهای  پرس و جو قبل از ساخت پرس و جو می کند.

فراخوانی wp_reset_query بعد از استفاده از WP_Query یا get_posts برای تعییر object پرس و جو ضروری نمی باشد و به جای آن می توانید از  wp_reset_postdata استفاده کنید.

ساختار

<?php wp_reset_query(); ?>

پارامترها

این تابع پارامتری ندارد

مقادیر بازگشتی

ان تابع مقدار بازگشتی ندارد



مثال

این مثال نشان می دهد که از  ()wp_reset_query بعد از یک حلقه دلخواه  چگونه استفاده می کنیم.دقت داشته باشید که ممکن است حلقه در داخل حلقه اصلی باشد

<?php

$args = array ( 'post_parent' => 5 );
query_posts( $args );

if ( have_posts() ):
    while ( have_posts() ) :
        the_post();

        // Do stuff with the post content.
        the_title();
        the_permalink(); // Etc.

    endwhile;
else:
    // Insert any content or load a template for no posts found.
endif;

wp_reset_query();

?>

()query_posts ممکن است پرس و جوی اصلی شما را تغییر دهد که آن را به شما توصیه نمی کنیم.آن را در صورت کاملا ضروری استفاده کنید.ایجاد یک نمونه جدید از WP_Query یا ()get_posts  برای حلقه دوم ارجحیت دارد.اگر شما تمایل به ویرایش پرس و جوی اصلی دارید، از اکشن pre_get_posts استفاده کنید.مطمئن باشید که تابع pre_get_posts  را در فایل functions.php قرار داده باشید.

<?php
query_posts( 'post_parent=5' );
if ( have_posts() ) :
	while ( have_posts() ) : the_post();
		?><a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
	endwhile;
endif;
wp_reset_query();
?>

 



نمونه pre_get_posts  


function my_home_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '123' );
    }
}
add_action( 'pre_get_posts', 'my_home_c

 

 

تاریخ آخرین بروزرسانی : ۲۴ خرداد ۱۳۹۵
میلاد میلادی

باور هایت را که پرورش دهی به هرچیزی دست خواهی یافت.

ارسال نظر

آدرس الکترونیکی شما نمایش داده نمی شود *

Time limit is exhausted. Please reload CAPTCHA.