如果页面内容为空,则隐藏菜单项

时间:2014-12-02 作者:need-help

我正在寻找解决方案,隐藏(只是不打印)菜单项,如果页面内容是空的。

默认情况下,创建新页面时wordpress创建菜单项。这样就可以了。

但我不希望的是,当创建新页面时,用户仍然没有向页面添加任何内容,而是在菜单中显示页面。

有什么建议吗?

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

你可以试试这个,在所有wp_nav_menu 项目,使用对象ID获取帖子,然后测试内容是否为空。IF 该内容为空,然后将其从items数组中取消设置:

function remove_empty_items( $items ) {
    $blog_page = get_option( \'page_for_posts\' );
    $home_page = get_option( \'page_on_front\' );
    $postArr   = get_posts ( \'post_type=post\' );

    foreach( $items as $key => $item ) {
        $tmpPost = get_post( $item->object_id );

        if( $item->object_id == $blog_page && empty( $postArr ) ) {
            unset( $items[$key] );
        } else if( $item->object_id !== $home_page && empty( $tmpPost->post_content ) ) {
            unset( $items[$key] );
        }
    }

    return $items;
}
add_filter( \'wp_get_nav_menu_items\', \'remove_empty_items\' );

结束

相关推荐

Wordpress Remove Submenus

我在这里找到了一个已回答的问题Remove menus and submenus 2 Answers 对于我的问题,但是否有一种方法可以稍微更改代码,以便删除所有编辑器角色的子菜单。不仅仅针对一个用户?有没有办法改进这段代码?我正在使用3.5.1 WordPress版本code that I am using: add_action(\'_admin_menu\', \'remove_editor_submenu\', 1); function remove_editor_submenu() {&