สวัสดี@janoChen:
คำตอบง่ายๆ: ไม่
สิ่งที่ตามมาคือโค้ด PHP สำหรับฟังก์ชั่นwp_reset_query()
จาก/wp-includes/query.php
ใน WordPRess v3.0.4 รวมถึงฟังก์ชั่นที่เรียกในภายหลัง คุณสามารถเห็นได้ว่ามันเกี่ยวกับการปรับเปลี่ยนตัวแปรส่วนกลาง
เมื่อคุณใช้new WP_Query($args)
คุณจะได้รับการกำหนดค่าส่งคืนจากค่าให้กับตัวแปรท้องถิ่นดังนั้นหากคุณกำลังทำบางสิ่งที่ซับซ้อนจนคุณรู้คำตอบสำหรับคำถามนี้แล้วไม่คุณไม่จำเป็นต้องโทรwp_reset_query()
:
function wp_reset_query() {
unset($GLOBALS['wp_query']);
$GLOBALS['wp_query'] =& $GLOBALS['wp_the_query'];
wp_reset_postdata();
}
function wp_reset_postdata() {
global $wp_query;
if ( !empty($wp_query->post) ) {
$GLOBALS['post'] = $wp_query->post;
setup_postdata($wp_query->post);
}
}
function setup_postdata($post) {
global $id, $authordata, $day, $currentmonth, $page, $pages, $multipage, $more, $numpages;
$id = (int) $post->ID;
$authordata = get_userdata($post->post_author);
$day = mysql2date('d.m.y', $post->post_date, false);
$currentmonth = mysql2date('m', $post->post_date, false);
$numpages = 1;
$page = get_query_var('page');
if ( !$page )
$page = 1;
if ( is_single() || is_page() || is_feed() )
$more = 1;
$content = $post->post_content;
if ( strpos( $content, '<!--nextpage-->' ) ) {
if ( $page > 1 )
$more = 1;
$multipage = 1;
$content = str_replace("\n<!--nextpage-->\n", '<!--nextpage-->', $content);
$content = str_replace("\n<!--nextpage-->", '<!--nextpage-->', $content);
$content = str_replace("<!--nextpage-->\n", '<!--nextpage-->', $content);
$pages = explode('<!--nextpage-->', $content);
$numpages = count($pages);
} else {
$pages = array( $post->post_content );
$multipage = 0;
}
do_action_ref_array('the_post', array(&$post));
return true;
}
-Mike