繁体   English   中英

WordPress在插件中调用javascript函数

[英]wordpress calling javascript function in plugin

我正在努力从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>';

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

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

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')。 这将允许您选择脚本的加载位置和时间。

顺便说一句,请确保在进行重定向时进行正确的检查/验证,因为这可能会带来安全漏洞。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM