Chr*_*rey 0 php wordpress wordpress-theming
在我的 WordPress 网站private中,wp_nav_menu即使用户未登录,我也需要在主导航中显示链接(通过)(我只需要显示链接,而不是更改可以查看实际内容的人)。
我可以在其他地方执行此操作,使用wp_list_pages and指定要显示的 post_status(es),但我看不到如何将其应用于wp_nav_menu.
这有效:
wp_list_pages(array(
'title_li' => '',
'child_of' => $page->ID,
'post_status' => 'published,private'
));
Run Code Online (Sandbox Code Playgroud)
有没有办法做类似的事情?
wp_nav_menu(array(
'menu' => 'primary',
'theme_location' => 'primary',
'container' => FALSE,
'walker' => new MegaMenuWalker
'depth' => 2));
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的搜索显示了多种对结果进行后处理以使用wp_get_nav_menu_items钩子过滤掉私人页面(或草稿)的方法,但我还没有找到相反的方法。
我想我可以做一个自定义查询来以这种方式抓取项目,但这不会让我使用我的自定义步行者。
诱人的是wp_get_nav_menu_items( $menu, $args ),它确实允许我指定 post_status 参数,但是我只能应用我自己的渲染而不是能够使用 walker...除非有某种方法可以在wp_nav_menu?
这是在菜单构建器中显示私人页面的简短片段:
add_filter( 'nav_menu_meta_box_object', 'show_private_pages_menu_selection' );
/**
* Add query argument for selecting pages to add to a menu
*/
function show_private_pages_menu_selection( $args ){
if( $args->name == 'page' ) {
$args->_default_query['post_status'] = array('publish','private');
}
return $args;
}
Run Code Online (Sandbox Code Playgroud)
将此添加到自定义插件或主题中functions.php,您将能够将私人页面添加到任何菜单中。