WordPress登陆和未登陆用户显示不同菜单
目前大多数 wordpress 主题都支持在后台 – 外观 – 菜单中设置网站的菜单,而且可以创建多个菜单,给各个菜单单独设置菜单项。普通来讲站点头部有一个导航菜单,偶然候因为某些要素咱们需要给登岸和未登岸用户分别显现不同的菜单项,这里说下方式。目前有这样的需求:网站头部有一个导航菜单,想在这个位置给登录和未登录用户分别显示不同的菜单项,该如何实现呢?WordPress 给我们提供了 wp_nav_menu_args 这个 filter,可以在菜单显示之前更改 wp_nav_menu 函数的参数。具体我们可以这样实现:
1、创建菜单
先进入 WordPress 后台 – 外观 – 菜单中, 创建两个菜单,菜单名称分别设置成:已登录 和 未登录,并给这两个菜单分配不同的菜单项。
2、菜单位置
开始下一步前,我们需要知道菜单位置名称,也就是 theme_location 参数的值,用文本编辑器打开当前主题目录中的 header.php,搜索 wp_nav_menu 一般都能找到这个值,代码一般长这样:
-
// theme_location后面的 top 就是我们要找的值
-
wp_nav_menu( array( 'theme_location' => 'top', 'menu_id' => 'top-menu') );
3、添加代码
最后,在当前主题的 functions.php 添加以下代码即可:
-
function ludou_nav_menu_args($args = '') {
-
// 下面的top改成第2步获取到的菜单位置名称
-
if ($args['theme_location'] == 'top') {
-
if (is_user_logged_in()) {
-
$args['menu'] = '已登录';
-
}
-
else {
-
$args['menu'] = '未登录';
-
}
-
}
-
return $args;
-
}
-
add_filter('wp_nav_menu_args', 'ludou_nav_menu_args');
希望以上的文章对各位有用,如果觉得不错给我点个喜欢吧!更多和 WordPress 设置登陆用户和未登陆用户显示不同菜单相关的问题疑惑也欢迎大家咨询。
原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/102143

服务项目 | 服务内容 | 收费标准(元) |
---|---|---|
开发定制 | WordPress主题/插件开发定制 | (以最终需求为准) |
主题/插件汉化 | 汉化团队WordPress主题/插件,翻译率95% | (以标的主题/插件的句子数量为准) |
服务器环境配置 | 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 | 100元/次 |
网站托管 | 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 | 标配套餐:1000元/年/站点 高配套餐:联系客服获取 |
网站加速优化 | 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) | 500元/次(仅站内优化200元/次) |
主题配置 | 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 | 英文主题安装 60元/次 汉化主题安装 30元/次 |
HTTPS配置 | HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 | 100元/次 |
网站搬家 | 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 | 标准收费:500元/次 若网站数据量大,需协商 |
网站运维 | 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 | 标准收费:2000元/年 IP 5000以上需协商 |