Genesis Child Theme的header.php不会被覆盖

时间:2017-02-16 22:52:35

标签: php wordpress genesis

我安装了Genesis和Genesis主题。现在我想做一些自定义,所以我创建了一个子主题并激活了它。我做了CSS更改,一切正常。现在我想覆盖Genesis主题中的header.php文件,所以我已经将header.php文件复制到我的子主题中,希望我能够覆盖父主题header.php。但是我对child-theme的header.php文件所做的任何更改都不起作用。有什么想法我可以覆盖父的header.php文件吗?

2 个答案:

答案 0 :(得分:0)

从genesis中的header.php中获取代码&gt; lib&gt; <结构> header.php在第623行附近并在你的子主题functions.php文件中修改它,如下所示:

remove_action('genesis_header','genesis_do_header');

add_action('genesis_header','genesis_custom_header');
function genesis_custom_header() {

global $wp_registered_sidebars;

    genesis_markup( array(
        'open'    => '<div %s>',
        'context' => 'title-area',
    ) );

        do_action( 'genesis_site_title' );
        do_action( 'genesis_site_description' );

    genesis_markup( array(
        'close'    => '</div>',
        'context' => 'title-area',
    ) );

    if ( ( isset( $wp_registered_sidebars['header-right'] ) && is_active_sidebar( 'header-right' ) ) || has_action( 'genesis_header_right' ) ) {

        genesis_markup( array(
            'open'    => '<div %s>' . genesis_sidebar_title( 'header-right' ),
            'context' => 'header-widget-area',
        ) );

            do_action( 'genesis_header_right' );
            add_filter( 'wp_nav_menu_args', 'genesis_header_menu_args' );
            add_filter( 'wp_nav_menu', 'genesis_header_menu_wrap' );
            dynamic_sidebar( 'header-right' );
            remove_filter( 'wp_nav_menu_args', 'genesis_header_menu_args' );
            remove_filter( 'wp_nav_menu', 'genesis_header_menu_wrap' );

        genesis_markup( array(
            'close'   => '</div>',
            'context' => 'header-widget-area',
        ) );

    }

}

答案 1 :(得分:0)

通常创世主题的标头都有此代码

/**
 * Fires immediately after the site container opening markup, before `genesis_header` action hook.
 *
 * @since 1.0.0
 */
do_action( 'genesis_before_header' );

/**
 * Fires to display the main header content.
 *
 * @since 1.0.2
 */
do_action( 'genesis_header' );

/**
 * Fires immediately after the `genesis_header` action hook, before the site inner opening markup.
 *
 * @since 1.0.0
 */
do_action( 'genesis_after_header' );

您必须像这样更改它。

/**
 * Fires immediately after the site container opening markup, before `genesis_header` action hook.
 *
 * @since 1.0.0
 */
do_action( 'genesis_before_header' );

/**
 * Fires to display the main header content.
 *
 * @since 1.0.2
 */
do_action( 'my_custom_header' );

/**
 * Fires immediately after the `genesis_header` action hook, before the site inner opening markup.
 *
 * @since 1.0.0
 */
do_action( 'genesis_after_header' );

现在在function.php或header.php中添加这样的自定义标头。

add_action( 'my_custom_header', 'my_custom_header');
function my_custom_header() { ?> <header> Your header code </header><?php } ?>