向已登录的用户显示导航链接

时间:2013-10-07 作者:MrMachoman86

Wordpress允许用户将CSS类应用于外观-->菜单下的链接。

基于此,我想知道是否有办法隐藏具有特定CSS类的链接。假设我应用CSS类

.成员

到我的一个导航链接。关键是,我希望此链接仅显示给已登录的用户。

但我有点受困了,因为我不知道该怎么做。可能是这样的:

if(is_user_logged_in()) {

}
我只是不知道我如何才能瞄准CSS类。

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

您可以使用body_class 为此,例如:

.members {
    display: none;
}
body.logged-in .members {
    display: block;
}

SO网友:AJ Zane

如果您对编写PHP代码感到满意,可以使用wp_get_nav_menu_items(), 并使用对象的类数组确定哪些类应用于该项。然后您将使用is_user_logged_in() 显示链接。

大致如下:

    foreach ($items as $item){
        if ( in_array( \'members\' , $item->classes ) ) {
            if ( is_user_logged_in() ) {
                echo \'<a href="\'.$menu_item->url.\'">link</a>\';
            }
        } else {
            echo \'<a href="\'.$menu_item->url.\'">link</a>\';
        }
    }
如果您不想打开和摆弄一些PHP,请尝试使用权限插件,如http://wordpress.org/plugins/user-permissions/http://wordpress.org/plugins/members/ . 我个人还没有尝试使用它来设置菜单上的权限,但这些插件可以让您通过GUI按用户角色控制几乎所有内容的权限

结束

相关推荐

Is_home()在函数.php文件中不起作用

我正在使用woo主题,并尝试使用一些woo钩子来钩住索引。来自我的子主题的php文件。我正在使用以下代码:function content_woo_main_before() { if (is_home() || is_front_page()) { include(\'includes/home-news.php\'); } }; add_action(\'woo_main_before\', \'content_woo_main