如何将侧栏添加到WordPress菜单

时间:2014-02-27 13:15:51

标签: php wordpress function

我需要帮助!

我需要在菜单中获取一个小部件并尝试

add_filter('wp_nav_menu_items','add_widget_to_menu', 10, 2);
function add_widget_to_menu( $items, $args ) {
if( $args->theme_location == 'mobile_menu' )
    return $items.'<div id="newsletter-mobile">'.dynamic_sidebar( 'sidebar-mobile'        ).'</div>';

return $items; 
}

怎么了?

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用以下

创建侧边栏
register_sidebar(array(
    'name'=>'Widget_Name',
    'id'=>'widget_id',
    'before_widget' =>'<div class="">',
    'after_widget' =>'</div>'
));

要将此模板称为您的模板,您可以使用以下代码

if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('widget_id') ) : endif;

参考here了解详情

答案 1 :(得分:0)

此Hook用于在Wordpress中添加补充工具栏菜单:

add_action("admin_menu", "sidebar_menu_for_registration");

sidebar_menu_for_registration是一个函数。

这是创建补充工具栏菜单的语法:

add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '', string $icon_url = '', int $position = null )

答案 2 :(得分:0)

您将得到1作为输出,将小部件区域添加到菜单中。原因是wp_nav_menu回显了这些项目。要使其工作,您应该将小部件区域的内容转换为字符串。我设法使用缓冲解决了问题。这是一个对我有用的小代码示例:

function add_extra_item_to_nav_menu( $items, $args ) {
    ob_start();
        dynamic_sidebar( 'header-widget-area' );
    $menu_widget_area = ob_get_clean();
    $items .= $menu_widget_area;
    return $items;
}
add_filter( 'wp_nav_menu_items', 'add_extra_item_to_nav_menu', 10, 2 );