有人可以告诉我为什么这段代码不起作用? is_page()无效。
function tao_scripts() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', get_template_directory_uri() . '/js/jquery-1.4.2.min.js', false, '1.4.2');
wp_enqueue_script('jquery');
if ( is_page() ) {
wp_register_script('jquery-validate', get_template_directory_uri() . '/js/jquery.validate.min.js', 'jquery', '1.7');
wp_enqueue_script('jquery-validate');
}
}
}
add_action('init', 'tao_scripts');
代码在一个php文件中,包含在我的functions.php中。
我已经尝试了所有我能找到/想到的东西。如果没有is_page()条件,它就可以工作。我试过wp_reset_query(),没有帮助。我确定wordpress知道它的页面。 is_page(34,'name','Name')也不会有任何帮助。
答案 0 :(得分:2)
与行动顺序有关
add_action('init', 'tao_scripts');
此操作在提取查询对象之前发生
答案 1 :(得分:0)
您可以尝试使用特定页面测试您的功能:
if ( is_page(34, 'name', 'Name') )
{
// your code here
}
答案 2 :(得分:0)
从技术上讲,Torok错了。 is_page
在循环外完美运行。我想它没有用,因为你没有正确使用wp_register_script。依赖项必须是一个数组:
wp_register_script('jquery-validate', get_template_directory_uri() . '/js/jquery.validate.min.js', array('jquery'), '1.7');
应该这样做。
编辑:
正如TheDeadMedic所指出的那样,你也应该在以后的钩子上挂钩。您应该使用的最早的是wp
。我实际上建议使用template_redirect
,因为只有当你在前端时才会运行(除非你想在后端替换jQuery)。