使用本地化脚本将PHP变量传递给JS

时间:2015-05-04 作者:js111

我正在尝试使用wp\\u localize\\u脚本将一些变量(帖子的作者、帖子的类别和帖子的标题)传递给js文件。

我不能,因为我的生活得到这些正确的。如何获取当前正在查看的帖子的相关数据?

当前代码:

wp_enqueue_script( \'stats\', get_stylesheet_directory_uri() .\'/js/t5-demo.js\' , array( \'jquery\' ), \'1.0.0\', true );

$categories = implode( \', \', wp_list_pluck( get_the_category( get_the_ID() ), \'name\' ) ); 
$datatoBePassed = array(
    \'author\' =>  get_queried_object()->post_author,
    \'category\'   => $categories,
    \'title\'      => single_post_title( \'\', false )
);
wp_localize_script( \'stats\', \'php_vars\', $datatoBePassed );
下面是一个工作原理的例子(只需插入静态数字),所以我相信这与我如何尝试提取正在查看的帖子的变量有关。。

 wp_enqueue_script( \'stats\', get_stylesheet_directory_uri() .\'/js/t5-demo.js\' , array( \'jquery\' ), \'1.0.0\', true );

    $categories = implode( \', \', wp_list_pluck( get_the_category( get_the_ID() ), \'name\' ) ); 
    $datatoBePassed = array(
        \'author\' =>  \'10\',
        \'category\'   => \'11\',
        \'title\'      => \'12\'
    );
    wp_localize_script( \'stats\', \'php_vars\', $datatoBePassed );

1 个回复
SO网友:Manny Fleurmond

您的代码应该位于操作回调函数中:

function wpse186202_enqueue_scripts(){
    wp_enqueue_script( \'stats\', get_stylesheet_directory_uri() .\'/js/t5-demo.js\' , array( \'jquery\' ), \'1.0.0\', true );

    $categories = implode( \', \', wp_list_pluck( get_the_category( get_the_ID() ), \'name\' ) ); 
    $datatoBePassed = array(
        \'author\' =>  get_queried_object()->post_author,
        \'category\'   => $categories,
        \'title\'      => single_post_title( \'\', false )
    );
    wp_localize_script( \'stats\', \'php_vars\', $datatoBePassed );
}

add_action( \'wp_enqueue_scripts\', \'wpse186202_enqueue_scripts\' ); //Front end enqueueing
add_action( \'admin_enqueue_scripts\', \'wpse186202_enqueue_scripts\' ); //Admin enqueueing
该操作将在适当的时候调用函数,使其正确排队。选择一个适用于您希望其排队的位置。

结束