Genesis:将 nav 添加到自定义 header 函数中

Genesis: Add nav into custom header function

我正在尝试在 Genesis child 主题中创建一个自定义 header 功能,其中包括站点标题、描述、导航和一个额外的 div。导航不显示此代码:

remove_action( 'genesis_after_header', 'genesis_do_nav' );
remove_action( 'genesis_header', 'genesis_do_header' );
add_action( 'genesis_header', 'genesis_do_new_header' );
function genesis_do_new_header() {
    echo '<div id="title-area">';
    do_action( 'genesis_site_title' );
    do_action( 'genesis_site_description' );
    echo '</div>';
    do_action( 'genesis_do_nav' );
    echo '<div id="additional"></div>';
}

然后我尝试添加

add_action( 'genesis_header', 'genesis_do_nav' );

删除具有各种不同优先级的 after_header do_nav 操作后,但无法将其置于站点描述和#additional div 之间。想法?

作为解决方法,我将自定义 header 函数和 removed/added 它们之间的导航分开:

remove_action( 'genesis_header', 'genesis_do_header' );
add_action( 'genesis_header', 'genesis_do_new_header_1', 5 );
function genesis_do_new_header_1() {
    echo '<div id="title-area">';
    do_action( 'genesis_site_title' );
    do_action( 'genesis_site_description' );
    echo '</div>';
}
remove_action( 'genesis_after_header', 'genesis_do_nav' );
add_action( 'genesis_header', 'genesis_do_nav', 6 );
add_action( 'genesis_header', 'genesis_do_new_header_2', 7 );
function genesis_do_new_header_2() {
    echo '<div id="additional"></div>';
}

这目前工作得很好——但如果有更清洁的解决方案,我们会很高兴听到!