url_to_postid returns 0

时间:2017-04-16 作者:codemonkey

我试图将帖子id发送到js文件,以使用每个帖子的id作为键,为其创建本地存储。问题是,当我在php中尝试此代码时,它返回0,因此我的所有页面都具有相同的本地存储。我该怎么办?

public function button_js(){
    $url     = wp_get_referer();
    $post_id = url_to_postid( $url );

    wp_localize_script( \'likeButton\', \'ajax_object\',
        array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ), \'we_value\' => $post_id) )
}
add_action(\'wp_enqueue_scripts\',[ $this ,\'button_js\']);

1 个回复
SO网友:mmm

当您位于帖子URL时,您不需要使用referer(而且不可靠),而需要使用$GLOBALS["post"] 因为您在生成页面的PHP代码中

然后,您可以获得带有以下内容的帖子ID:

$post_id = $GLOBALS["post"]->ID;

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请