如何从回调函数访问$POST

时间:2017-06-12 作者:Pisuke Soramame

我想知道是否使用global $post 当需要获得$post 在由动作挂钩触发的回调函数中。

代码是:

class myPlugin {

    public function __construct() {
        add_action(\'wp\', array( $this, \'init\'));
    }

    public function init() {

        global $post;

        if (isset($post)) {
            // do something
        }

    }
}
我试图:

以$post作为参数调用init函数;和

什么是posted here

但是,这些选项都不起作用。

使用安全性如何global?假设“do something”是一个自定义WP查询,它可能会更改$post, 宣布it全球化后,有可能做一些意想不到的事情,对吗?

有更好的方法吗?

干杯

1 个回复
SO网友:Mark Kaplun

简短的回答是“不”,使用globals从来都不是最佳做法,这表明您可能试图在错误的地方做某事,应该将其作为最后的手段。

例如,在您的代码片段中,您不知道是谁设置了$post, 它是设置在环内还是环外,是单柱环,等等。

根据经验,永远不要使用globals,它们是邪恶的。

结束

相关推荐

Query total number of posts

使用搜索过滤器插件。我使用获取数据库中存在的帖子总数 $wp_query->found_posts 但是,当用户过滤页面上的结果时,该数字会根据过滤器上显示的帖子数量而变化。我怎样才能得到不管用户过滤什么都不会改变的静态帖子总数?更新:这是我的完整模板代码。我尝试了下面的答案,但无法使用我的模板。有什么想法吗?if ( $query->have_posts() ) { ?> <ul id=\"florefs\"> &l