WP_LOCALIZE_SCRIPT将文件路径传递给jscript

时间:2015-08-30 05:07:14

标签: javascript php jquery wordpress

我正在尝试开发一个youtube嵌入器插件。我这样做是因为大多数嵌入式插件不允许为视频选择自己的缩略图。

我遇到了jquery代码的问题,我似乎无法定义缩略图的jpeg文件的服务器路径(为了说明,我将jpg文件保存在与插件文件相同的文件中)。

我做错了什么?

基本上我要做的是使用wp_localize_script将插件的路径作为变量(称为php_vars)传递给youtube-embed.js。在那里,变量应该用于定义缩略图的img标签的scr属性。 src属性将连接php_vars + youtube视频IS(v [n] .dataset.id)+' .jpg"。

这里是PHP代码

public class Test {
    public Test() {
    }

    public void foo {
        if(BasicAuthenticatedSession.get().isSignedIn()) {
            Sysuser sysUser = BasicAuthenticatedSession.get().getSysuser();
            System.out.println(sysuser.getFirstname);
        }
    }
}

这里的JAVA脚本文件叫做youtube-embed.ss

function register_youtube_embed_plugin_scripts() 
{
    wp_register_script("youtube-embed-js", plugins_dir_url(__FILE__).'youtube-embed.js', array('jquery'), '', true); // Registers youtube script. I registered the script in the footer for now. 
    wp_enqueue_script("youtube-embed-js");

    $dataToBePassed = array(
    'home'            => plugins_dir_url(__FILE__) .""
    );

    wp_localize_script( 'youtube-embed-js', 'php_vars', $datatoBePassed);
}

add_action("wp_enqueue_scripts", "register_youtube_embed_plugin_scripts");

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

如果你需要定义一个对你的服务器路由或php脚本是动态的全局js变量,我发现这个方法是最安全的。

    add_action('wp_head','pluginname_url');

function pluginname_url() {
?>
<script type="text/javascript">
var home = '<?php echo plugins_dir_url(__FILE__); ?>';
</script>
<?php
}

将此添加到主题或插件中某处的functions.php文件中。 您现在可以访问名为“home”的变量,该变量将指向您的插件路由URL。