SO网友:Brooke.
虽然@s\\u ha\\u dum是正确的,但您将需要使用jQuery,WordPress中没有冲突,原始问题没有得到回答。
我有这个代码,我想添加到我的一个特定页面。
有几种方法可以做到这一点
基于主题函数中的页面名称/slug WordPress。此方法使用WordPress挂钩wp_enqueue_scripts
为脚本创建新的js文件my-nifty-custom.js
在您的functions.php
添加以下内容
/* Enqueue scripts (and related stylesheets) */
add_action( \'wp_enqueue_scripts\', \'my_nifty_scripts\' );
/**
* Registers scripts for the theme and enqueue those used site wide.
*
* @since 0.1.0.
*/
function my_nifty_scripts() {
wp_register_script(\'my-nifty-custom\', get_stylesheet_directory_uri() . \'/js/my-nifty-custom.js\', false, null, true);
if(is_page(\'page-slug-here\')){
wp_enqueue_script(\'my-nifty-custom\');
}}
注意,如果您使用的是儿童主题或想做得更多,请将整个主题包装在
after_setup_theme
ie:
add_action( \'after_setup_theme\', \'nifty_theme_setup\' );
function nifty_theme_setup() {
// script function and other functions that should happen after the initial theme setup
}
基于Body类(基于DOM的路由)这有点复杂。幸运的是,保罗·爱尔兰在这里写了一篇精彩的博客:
http://www.paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/如果使用此方法,它将基于Body类在每页上获取自定义JS。例如<body class="nifty">
然后您可以使用:
//clip
nifty : {
init : function(){ //custom script goes here }
}
//clip
唯一的问题是页面必须具有您正在调用的body类。为此,WordPress具有以下功能
body_class
add_filter(\'body_class\',\'nifty_class_names\');
function nifty_class_names($classes) {
if(is_page(\'page-slug-here\')){
$classes[] = \'nifty\';
}
return $classes;
}
那么你应该使用哪种方法呢我建议两者结合使用。创建一个使用Paul方法的JavaScript文件。然后使用
wp_enqueue_scripts
调用该方法。
惰性标题。php方法最后,总是有一种懒惰的方法(我不推荐使用这种方法,但我只想作为参考。
在标题中。php您可以执行以下操作:
<?php if(is_page(\'page-slug-here\')){
echo (\'<script type="text/javascript" src="\'. get_stylesheet_directory_uri() . \'/js/my-nifty-custom.js"> </script>\');
} ?>