问题描述

该法典将其定义为 「设置全局邮政数据。有助于格式化使用模板标签的自定义查询结果。我真的不明白这一点。

这是一个代码示例:

global $post;
$args = array( 'numberposts' => -1);
$posts = get_posts($args);
foreach( $posts as $post) : setup_postdata($post);
echo $post->ID;
endforeach;

请你解释一下

最佳解决方案

模板标签功能依靠全局变量来访问被处理的帖子,并从中检索数据或与之相关。

它们的主要变量是 $post,它保存后置对象本身。在您的示例中,它不是明确的,但是发生的情况是,您的循环将数据分配给 $post,如果迭代名称不是 $post,则需要明确地执行该操作 (global $post; $post = $some_other_post;) 。

但是有一些其他的全局变量和 setup_postdata()的目的是填写数据。如果你看源,那就是:

global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;

请注意,在大多数情况下,您应该在以后调用 wp_reset_postdata()将全局变量返回到原始状态。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。