WordPress在插件中调用javascript函数

时间:2018-06-27 00:21:12

标签: javascript wordpress

我正在努力从我的wordpress插件中进行JavaScript调用。我有一个具有不同功能的外部javascript文件,希望可以随时随地调用它们。

在我的主插件文件中注册并排队javascript文件。

wp_register_script( 'pluginMain', plugins_url( '/js/pluginMain.js', __FILE__ ) ); wp_enqueue_script( 'pluginMain' );

在pluginMain.js文件中,我想放置几个不同的函数,并在需要时在站点的不同页面上调用它们。重定向功能就是一个例子。

function redirectToHome() {
alert( 'Something went wrong.  You are being redirected home.' );

window.location.replace("https://somemainpage.com");
}

我弄清楚如何使任何事情发生的唯一方法是将以下代码添加到javascript文件中。但是在文件排队后,它可以随时运行,因此无处不在。

jQuery (document).ready (function () {
redirectToHome();
});

我尝试将jQuery(文档)代码添加到页面的html并从javascript文件中删除jQuery(文档)代码,但此后什么也没有发生。

echo '<p>Something has gone wrong.  You are being returned to the main page</p>';

    echo '<script type="text/javascript">
    <!--
    jQuery (document).ready (function () {
    redirectToHome();
    });
    //-->
    </script>';

我显然是新来的,对于从这里去哪里很困惑。我可以得到一些指导吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

如果仅在某些情况下需要运行脚本,则需要执行以下操作:

wp_register_script( 'pluginMain', plugins_url( 
'/js/pluginMain.js', __FILE__ ) );

这将注册,但在入队之前不会加载脚本。 然后,您可以这样做:

add_action('loadmyscripthereplz', 'somefunction');
function somefunction(){
   wp_enqueue_script('pluginMain');
}

然后,无论您希望将脚本加载到什么地方(例如页面模板),只需执行以下操作:

do_action('loadmyscripthereplz');

这将使您可以实际将脚本调用放置在所需的任何位置。另外,您也可以像完成操作一样在功能文件中注册脚本,然后使用is_front_page()之类的检查或您需要的任何其他WP检查有条件地调用wp_enqueue_script('script')。这将允许您选择脚本的加载位置和时间。

此外,请确保在进行重定向时进行正确的检查/验证,因为这可能是安全漏洞。