从一个示例开始更有意义,下面是一个示例函数:
function seo_meta_tags() {
global $post;
if( is_singular() ) {
setup_postdata( $post );
$description = str_replace( \'... <a class="read-more" href="\' . get_permalink() . \'">Cont. reading →</a>\', \'...\', get_the_excerpt() );
wp_reset_postdata();
echo \'<meta itemprop="description" name="description" content="\' . $description . \'">\';
}
}
NOTE: 代码只是给你一个想法,告诉你我想要完成什么,而不是我到底是怎么做的现在说到重点,应该setup_postdata( $post )
使用关闭wp_reset_postdata()
如示例所示?
最合适的回答,由SO网友:tfrommen 整理而成
像setup_postdata
正在与全局变量混为一谈,这些全局变量可能是(很可能是:are) 被其他循环(包括循环)使用时,应始终将这些变量重置为其应为的值&mdash;根据主查询(即WordPress认为用户首先想要什么)
此外,setup_postdata
提供(参考)的$post
全局,以后可能会更改。
所以,是的,setup_postdata
应随附wp_reset_postdata
.
As you can see in the code, 这个reset_postdata
函数实际上是调用setup_postdata
在原始版本上$post
对象