Wp_LOCALIZE_SCRIPT调用的是一个脚本函数还是简单地将PHP参数传递给它

时间:2011-11-17 作者:Laxmidi

简单的问题:我试图理解wp_localize_script.

wp_localize_script 调用JavaScript函数,还是将PHP参数简单地传递给JavaScript?

我想将PHP参数传递给JavaScript函数并调用JS函数。

1 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

wp_localize_script 获取数据数组(在PHP中)并输出javascript。这是一种将特定脚本的动态数据添加到前端的方法,而无需挂接到wp\\u head或wp\\u footer中,并自己进行回显。更多信息,wp_localize_script 在您排队的脚本正上方输出数据。钩住wp_headwp_footer 不会那样做的。

wp_localize_script 不调用javascript函数。这是一种完全满足您需求的方法:将动态数据从服务器端(PHP)传递到客户端(javascript)。

An Example

您的主题需要获取一段post元数据,并使其可供javascript函数访问。

所以你会wp_enqueue_scripts 然后执行以下操作。。。

<?php
add_action( \'wp_enqueue_scripts\', \'wpse34008_enqueue\' );
function wpse34008_enqueue()
{
    // if we\'re not on a singular page, bail
    if( ! is_singular() ) return;

    global $post;
    if( empty( $post ) ) $post = get_queried_object();

    // enqueue your script...
    wp_enqueue_script( \'wpse34008-script\', \'http://example.com/path/to/script.js\' );

    wp_localize_script(
        \'wpse34008-script\',
        \'wpse34008\',
        array(
            \'meta\' => get_post_meta( $post->ID, \'_wpse34008_meta\', true )
        )
    );
}
然后在排队的某个地方script.js 文件,你可以像这样得到帖子元。。。

// somewhere in the js file
someFunction( wpse34008.meta );
有意义吗?

结束