如何在Wordpress中的每个非管理员页面添加Javascript?

时间:2013-04-15 16:53:45

标签: wordpress-plugin wordpress

我有一个插件,我以前只需要在内容页面上加载Javascript。换句话说,代码add_filter('the_content', 'insert_js');就足够了。现在,我希望将Javascript插入到不是管理页面或搜索结果页面的每个页面,我想知道是否有快捷方式过滤器名称,或者我是否必须列出所有过滤器。我也只想将Javascript添加到页面一次。如果我必须添加一些add_filter()行,那很好,但我仍然不确定他们需要什么。我查阅了插件API /过滤器参考文档(http://codex.wordpress.org/Plugin_API/Filter_Reference),这看起来很模糊。我也试过使用 the_category 等无济于事。我也想弄清楚如何在主页上加载Javascript。我所包含的Javascript不是静态的,需要根据运行时已知的某些WP特定属性(如URL)生成。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:3)

使用add_action将脚本添加到特定的挂钩。通常wp_head用于向head部分添加脚本,wp_footer用于在页脚部分添加脚本。 请检查以下代码:

<?php

function add_this_script_footer(){ ?>
    <script type="text/javascript">
        [YOUR JS CODE HERE]
    </script>
<?php } 

add_action('wp_footer', 'add_this_script_footer'); ?>

或者您可以使用wp_enqueue_script()添加外部脚本,如下所示:

<?php
function my_scripts_method() {
  wp_enqueue_script(
    'custom-script', // handle
    get_template_directory_uri() . '/js/custom_script.js', // src
    array( 'jquery' ) // dependencies
  );
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
?>

您可以在http://codex.wordpress.org/Function_Reference/wp_enqueue_script

上找到有关wp_enqueue_scripts的更多详细信息

答案 1 :(得分:3)

继续@ itskawsar的回答;您可以将wp_enqueue_script()函数包装在条件中,以确保它们仅加载到非管理页面上:

<?php
function my_scripts_method() {
    if (!is_admin()) {
        wp_enqueue_script(
        'custom-script', // handle
        get_template_directory_uri() . '/js/custom_script.js', // src
        array( 'jquery' ) // dependencies   
        );
    }
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
?>