我需要帮助!
我需要在菜单中获取一个小部件并尝试
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;
}
怎么了?
谢谢!
答案 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 );