add_action( 'wp_enqueue_scripts', 'script_enqueuer' );
function script_enqueuer() {
wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
wp_enqueue_script( 'site' );
wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
wp_enqueue_style( 'screen' );
}
我在子functions.php中尝试了以下内容,但是链接和脚本标记仍显示在
add_action('init', 'removeScripts');
function removeScripts() {
wp_dequeue_style('screen');
wp_deregister_script('site');
}
我仔细检查了它们是否在父标头中进行了硬编码,但没有。
#1 楼
我想改用@import,这样我可以更轻松地覆盖样式
。别。做。那。
您只需跳入相同的钩子,然后取消注册/使样式/脚本出列并放入自定义样式。
function PREFIX_remove_scripts() {
wp_dequeue_style( 'screen' );
wp_deregister_style( 'screen' );
wp_dequeue_script( 'site' );
wp_deregister_script( 'site' );
// Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );
使脚本出队和注销的原因很简单:
请注意,如果您希望在将这些句柄出队后使用其中任何一个句柄(
'screen'
或'site'
),您也需要注销它们。例如:wp_deregister_style( 'screen' );
和wp_deregister_script( 'site' );
-peterjmag #2 楼
您可以通过以下方法删除父主题的样式表,然后将其替换为子主题的样式表,或者仅删除父主题的样式表。Starker主题的functions.php:
add_action( 'wp_enqueue_scripts', 'script_enqueuer' );
function script_enqueuer() {
//...
wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
wp_enqueue_style( 'screen' );
}
记住他们称为样式“屏幕”的句柄
用子主题的样式表替换父主题的
Starker-Child主题的functions.php:
function custom_starkers_styles() {
//Remove desired parent styles
wp_dequeue_style( 'screen');
//Replace with custom child styles
wp_register_style( 'screen-child', trailingslashit( get_template_directory_uri() ). 'screen.css' );
wp_enqueue_style( 'screen-child');
}
add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 );
删除父主题的样式表
Starker-Child主题的function.php:
function remove_starkers_styles() {
//Remove desired parent styles
wp_dequeue_style( 'screen');
}
add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );
我们将子主题的add_action()的优先级设置为20(默认值为10),因为我们希望它在父主题排队之后运行。优先级越高,它将运行得越晚。 20> 10,因此子主题的操作将始终在父主题已执行之后运行。