WordPress在指定页面 底部/最下面 添加js/css代码

本文介绍在wordpress中,如何在特定的页面,添加js或css代码。本文主要采取修改主题function.php文件的方式,而非网上广泛抄袭的添加head自定义代码方式。

本文于2022年4月2日做了更新和完善。

部分脚本代码或css样式

有时候,一些代码需要添加到一个指定的页面,而不是全局。这时,可以使用一个wp_footer钩子,再结合is_page进行页面判断,将指定代码写到页面底部。

function custom_script() {

    if (is_page('page-slug')) {
        ?>
        <script type="text/javascript">
            console.log('js here');
        </script>
        <?php
    }
}
add_action( 'wp_footer', 'custom_script' );

注意,wp-footer钩子比较浅,它的位置在其他js的上面,所以如果你要添加的内容依赖JQuery,则此方法不可行。

JS脚本文件或css样式文件

如果要在一个指定页面中,引用一个指定的脚本文件,可以这么写:

function custom_js() {
    // child theme: use get_stylesheet_directory_uri() instead of get_template_directory_uri()
    wp_register_script('scrollTo', get_stylesheet_directory_uri() . '/jquery.scrollTo.min.js', array('bootstrap'), '1.0', true);
    if (is_page('publications')) {
        wp_enqueue_script('scrollTo');
    }
}
add_action( 'wp_enqueue_scripts', 'custom_js' );

如果是样式文件,则使用wp_enqueue_style函数。

将脚本添加到最底部或指定脚本下方

代码解释:wp_register_script(‘scrollTo’, get_stylesheet_directory_uri() . ‘/jquery.scrollTo.min.js’, array(‘bootstrap’), ‘1.0’, true);

注册一个名为scrollTo的脚本,它的位置在正使用的主题目录下,文件名为jquery.scrollTo.min.js,这个脚本依赖bootstrap,所以它的位置在bootstrap.js下方。该脚本自定义版本号为1.0,最后一个参数为true意味着添加在footer中。

通过上方提到的依赖特性,我们可以实现将一脚本添加到所有js的最下面,或指定脚本的下面。

wordpress中每个脚本都有一个名字,看页面的html源码即可,如图

id后面去除-js,即为该脚本的名字。所以我们可以通过源码找到某js的名字,然后针对性的在其下方添加自定义js。

其它

页面用is_page()

文章用is_single()

woocommerce的产品页,则用is_product()

相关文档

https://developer.wordpress.org/reference/functions/is_page/

https://developer.wordpress.org/reference/functions/wp_enqueue_script/

https://developer.wordpress.org/reference/functions/wp_enqueue_style/

解决:WordPress自定义js后报TypeError: $ is not a function

https://docs.woocommerce.com/document/conditional-tags/

点赞