【问题标题】:Genesis Menu duplicating instead of moving创世纪菜单复制而不是移动
【发布时间】:2013-06-03 19:46:52
【问题描述】:

我正在开发一个创世网站,我需要将标准导航菜单移到标题上方。我在我的子主题的 functions.php 文件中使用以下代码:

remove_action( 'genesis_after_header', 'genesis_do_nav' );
add_action( 'genesis_before_header', 'genesis_do_nav' );

它在标题前添加导航菜单,但不删除标题后的导航菜单。 “后标头”正确放置在输出中,所以我知道我在“remove_action”上使用了正确的钩子。除了为页脚指定一个菜单并添加描述之外,我的 functions.php 文件中没有其他内容可以处理导航。以下是我的 functions.php 文件中的所有代码(跳过处理列短代码的大部分内容):

add_action('genesis_setup','child_theme_setup', 15);
function child_theme_setup() {
    //Add Homepage Sidebar
    genesis_register_sidebar( array( 'name' =>
    'Home Sidebar', 'id' => 'home-sidebar' ) );
    //Adds footer widgets
    add_theme_support( 'genesis-footer-widgets', 6 );
    //Adds Footer Text Replace
    remove_action( 'genesis_footer', 'genesis_do_footer' );
    remove_action('genesis_footer', 'genesis_footer_markup_open', 5);
    remove_action('genesis_footer', 'genesis_footer_markup_close', 15);
    add_action( 'genesis_after', 'be_footer' );
}

//Function to replace the footer text and copyright
function be_footer() {
    echo '<div id="footer" class="footer"><div class="footer-wrap"><div class="left"><p>© Copyright ' . date('Y') . ' RC Auto |<a href="http://www.watrousmedia.com/">Watrous Media</a></p></div>';
    echo '<div class="right">';
    wp_nav_menu( array( 'menu' => 'footer' ) );
    echo '</div></div></div>';
}
//Add Menu Descriptions
function be_add_description( $item_output, $item ) {
$description = $item->post_content;
if (' ' !== $description )
return preg_replace( '/(<a.*?>[^<]*?)</', '$1' . '<span>' . $description . '</span><', $item_output);
else
return $item_output;
}
add_filter( 'walker_nav_menu_start_el', 'be_add_description', 10, 2 );

// Use shortcodes in widgets
add_filter( 'widget_text', 'do_shortcode' );

/** Move primary nav menu to before header for mobile support*/
remove_action( 'genesis_after_header', 'genesis_do_nav' );
add_action( 'genesis_before_header', 'genesis_do_nav' );

截图如下:

主菜单是在小部件中添加的样式,因为我在标题中需要它。我计划用作响应式移动菜单的主菜单。任何人都知道为什么较低的导航没有删除?

感谢您的帮助。

【问题讨论】:

    标签: php wordpress menu navigation


    【解决方案1】:

    我也有这个问题,在子主题的functions.php文件开头添加以下代码修复它:

    require_once( get_template_directory() . '/lib/init.php' );
    

    您还可以在 child_theme_setup() 函数中移动 remove_action( 'genesis_after_header', 'genesis_do_nav' );

    要求init.php 将确保首先初始化创世框架,因此您的函数文件中的所有内容都将能够引用创世函数。如果您使用 genesis_setup 操作,则需要确保需要 genesis 框架作为参考的函数在该函数内运行。

    【讨论】:

    • 谢谢。我用 css 隐藏了,但现在我有了实际的解决方案,效果很好。
    猜你喜欢
    • 2017-02-15
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多