我正在努力从我的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>';
我显然是新来的,对于从这里去哪里很困惑。我可以得到一些指导吗? 谢谢。
答案 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')。这将允许您选择脚本的加载位置和时间。
此外,请确保在进行重定向时进行正确的检查/验证,因为这可能是安全漏洞。