是否应使用‘wp_Reset_postdata()’重置‘Setup_postdata()’?

时间:2013-12-27 作者:its_me

从一个示例开始更有意义,下面是一个示例函数:

function seo_meta_tags() {
    global $post;

    if( is_singular() ) {

        setup_postdata( $post );

        $description = str_replace( \'... <a class="read-more" href="\' . get_permalink() . \'">Cont. reading &rarr;</a>\', \'...\', get_the_excerpt() );

        wp_reset_postdata();

        echo \'<meta itemprop="description" name="description" content="\' . $description . \'">\';

    }
}
NOTE: 代码只是给你一个想法,告诉你我想要完成什么,而不是我到底是怎么做的

现在说到重点,应该setup_postdata( $post ) 使用关闭wp_reset_postdata() 如示例所示?

1 个回复
最合适的回答,由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 对象

结束