一个简单的入队/出队无法正常工作

时间:2014-03-11 01:54:17

标签: php wordpress wordpress-plugin wordpress-theming

WP Guru,

我正在测试enqueue / dequeue,因为在我的子主题中,我试图从父主题覆盖排队的脚本块。

也许我做错了但是我在child theme的functions.php顶部添加了这段代码。我希望不会看到那个回音的声明,但我确实如此。

我上下移动了优先级属性,没有任何乐趣。它应该是非常直接的,除非我说错了。

我做错了什么?

由于

add_action('wp_enqueue_scripts', 'sometest', 90);
add_action('wp_enqueue_scripts', 'undo_it',80);

function sometest() {
        echo '****** IF YOU SEE ME THEN ITS NOT WORKING *****************';
}
function undo_it() {
   wp_dequeue_script( 'sometest' );
   wp_deregister_script( 'sometest' ); 
}

2 个答案:

答案 0 :(得分:0)

最好使用实际脚本而不是echo进行测试。主要问题是wp_dequeue_scriptwp_deregister_script$handle作为参数而不是函数名称。

例如:

function de_script() {
    wp_dequeue_script( 'jquery' );
    wp_deregister_script( 'jquery' );
}
在这种情况下,

jquery是在$handlewp_enqueue_script

中使用的wp_register_script

这些都是在这些函数的codex中编写的。 http://codex.wordpress.org/Function_Reference/wp_dequeue_script http://codex.wordpress.org/Function_Reference/wp_deregister_script http://codex.wordpress.org/Function_Reference/wp_enqueue_script http://codex.wordpress.org/Function_Reference/wp_register_script

如果父主题未使用wp_enqueue_scriptwp_register_script使用$handle,那么他们 做错了 。< / p>

答案 1 :(得分:0)

我不是百分百肯定你在这里想要完成的事情。您在undo_it中运行的代码对echo中的sometest无效。 wp_enqueue_script和相关函数用于将JavaScript文件注入页面,而不是修改钩住的PHP函数。

您可能正在寻找remove_action功能。