在Wordpress子主题

时间:2017-01-27 19:29:20

标签: php html css wordpress

我正在尝试从html5blank主题中创建一个子主题。我已经设法使用以下内容使我的子主题CSS工作:

<?php
    add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
    function my_theme_enqueue_styles() {
        wp_enqueue_style( 'main-css', get_stylesheet_directory_uri() . '/css/main.css' );
    }
 ?>

但是父母的样式仍然是继承的。这些是style.cssnormalize.css。我根本不需要这些文件。

所以我被告知我需要使用wp_dequeue_style(). “使用wp_dequeue_style()删除父排队文件”添加您的挂钩,其优先级高于默认值10.这是add_action()的第三个可选参数。像100这样的东西。

不幸的是,我真的在努力完成这项基本任务,我已经尝试过,但我无法让它发挥作用。我试过以下但显然这是完全错误的!

<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'main-css', get_stylesheet_directory_uri() . '/css/main.css' );
    wp_dequeue_style( 'parent-style-css', get_template_directory_uri() . '/style.css', 100 );
    wp_dequeue_style( 'parent-normalize-css', get_template_directory_uri() . '/normalize.css', 100 );
}
?>

任何人都可以帮忙吗?我确信这是直截了当的,但我没有线索!

另外,我猜我是否不需要来自父母的JS,因为我会在我的孩子中使用它,我想我会使用这些方法将它们排队/出列?

修改

这更像是......

<?php

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 100 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'main-css', get_stylesheet_directory_uri() . '/css/main.css' );
    wp_dequeue_style( 'normalize');
    wp_dequeue_style( 'html5blank');
}

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_scripts', 100 );
function my_theme_enqueue_scripts() {

    wp_deregister_script( 'conditionizr');
    wp_deregister_script( 'modernizr');
    wp_deregister_script( 'html5blankscripts');

    wp_register_script('jquery', get_template_directory_uri() . '/js/jquery-1.12.0.min.js', array('jquery'), '1.12.0'); // Custom scripts
    wp_enqueue_script('jquery'); // Enqueue it!

    wp_register_script('responsive-nav', get_template_directory_uri() . '/js/responsive-nav.js', array('jquery'), '1.0.0'); // Custom scripts
    wp_enqueue_script('responsive-nav'); // Enqueue it!

    wp_register_script('uniform-js', get_template_directory_uri() . '/js/jquery.uniform.min.js', array('jquery'), '1.0.0'); // Custom scripts
    wp_enqueue_script('uniform-js'); // Enqueue it!

    wp_register_script('main-js', get_template_directory_uri() . '/js/main.js', array('jquery'), '1.0.0'); // Custom scripts
    wp_enqueue_script('main-js'); // Enqueue it!
}

?>

1 个答案:

答案 0 :(得分:2)

说明只是告诉你改变这个......

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

进入这个...

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 100 );

完整的方法调用是......

add_action( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )

只有前两个是必需的,其他人有默认值,以防你将它们留空。

此外,要出列,您只需要父标识符的名称,而不是所有文件详细信息。

wp_dequeue_style( 'name-of-identifier-in-parent-theme' );

看起来你把优先权放在了错误的函数调用上。

是的,您也可以使用此方法将javascript文件出列。