仅在特定页面上加载wordpress插件


Loading wordpress plugin on specific page only

我正在为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测试,这是您的选择。