wordpress global $ post返回null,但与其他过滤器一起使用

时间:2014-10-06 13:20:46

标签: php wordpress filter wordpress-plugin

我正在尝试使用post-> ID保存帖子元素,但$ post似乎为空并显示通知 - “注意:尝试获取非对象的属性”(访问$ post-> ID)

因此,add_filter似乎根本不起作用。

add_filter('add_to_cart_redirect', array($this, 'custom_add_to_cart_redirect')); // Goes in class constructor.


function custom_add_to_cart_redirect() {
    global $post;
    var_dump($post).die();      // this $post var is always null.
    return $this->woocommerce_custom_add_to_cart_get_cartURL(); // The global $post declaration within this method doesn’t works too.
}

我还尝试在全局声明之前添加wp_post_resetdata()调用,但没有运气。

知道这里出了什么问题吗?

3 个答案:

答案 0 :(得分:2)

今天我遇到了类似的情况,全球$post在应该出现的时候是不可用的。经过仔细研究,我发现is_404()的每个页面请求都返回true,而post 0的查询因此无法返回全局$post对象的数据。

法拉盛永久链接为我做了伎俩(没什么特别的,我只是重新保存了它们。)

答案 1 :(得分:0)

您可以使用像

这样的woocommerce全局变量
global $woocommerce;
var_dump($woocommerce).die();

答案 2 :(得分:0)

您是否在外部PHP脚本中加载上述代码?您可能需要包含wp_load.php