我正在为wordpress开发一个插件,用于在页面中加载javascript。但我希望这个插件只加载在选定的页面上。并非所有页面。有人能建议怎么做吗?这是代码。
add_action('wp_enqueue_scripts', 'soundninja_enqueue');
function soundninja_enqueue($hook)
{
wp_enqueue_script('soundninja', // id
'http://soundninja.github.io/SNtest/build/Soundninja.min.js', // path
array('jquery'), // dependencies
0, // appends ?ver=$wordpress_version
true // in_footer
);
}
另一种可能的解决方法是保持插件停用,并仅为所需页面激活它。这将防止在不需要插件的页面上加载插件所涉及的额外开销。最重要的是,您不必调整现有插件的代码。
这是一篇可以给你更多想法的帖子http://shibashake.com/wordpress-theme/how-to-selectively-load-plugins-for-specific-pages
根据调用函数soundninja_enqueue($hook)
的位置,可以很容易地添加一个if
语句,询问当前页面/帖子id是否在允许的id列表中。
但首先您需要获得当前页面/帖子id,为此您有几个选项,具体取决于是在The loop
内部还是外部调用函数。
请参阅此处,了解如何在wordpress 中获取当前页面id
<?php
$allowedIds = array(12,13,14);
if (in_array($currentID,$allowedIds)) soundninja_enqueue($hook);
另一种选择是将当前页面/帖子id作为参数传递给函数,并在函数内部进行相同的if
测试,这是您的选择。