Xin chào @janoChen:
Câu trả lời đơn giản: không.
Phần tiếp theo là mã PHP cho hàm wp_reset_query()
từ /wp-includes/query.php
trong WordPRess v3.0.4 cũng như các hàm được gọi sau đó. Bạn có thể thấy rằng chủ yếu là về việc sửa đổi các biến toàn cục.
Khi bạn sử dụng, new WP_Query($args)
bạn sẽ gán giá trị trả về từ các giá trị cho biến cục bộ, vì vậy trừ khi bạn đang làm điều gì đó phức tạp đến mức bạn đã biết câu trả lời cho câu hỏi này rồi thì không, bạn không cần phải gọi 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;
}
-Như