php - 动态编辑/添加菜单项 - Wordpress
问题描述
如果用户登录或未登录,我想相应地更改项目的菜单标签。如果用户未登录,我想显示登录,如果用户是管理员,我想显示管理员页面,如果普通用户登录,我想显示我的个人资料页面。
我试过这段代码。
add_filter( 'wp_nav_menu_items', 'dynamic_label_change', 10, 2 );
function dynamic_label_change( $items, $args )
{
if (!is_user_logged_in() && $args->theme_location == 'topbar_navigation')
{
$items = str_replace("Login", "Profile", $items);
}
return $items;
}
解决方案
如果你想添加新的菜单项,那么下面的代码会有所帮助。
// Add Login / Logout menu item dynamically to primary navigation menu
function custom_menu_links( $items, $args ) {
if ($args->theme_location == 'primary'){
if (is_user_logged_in()) {
$items .= '<li><a href="'. wp_logout_url(home_url()) .'">Logout</a></li>';
} else {
$items .= '<li><a href="'. site_url('wp-login.php') .'">Login</a></li>';
}
}
return $items;
}
add_filter( 'wp_nav_menu_items', 'custom_menu_links', 10, 2 );
推荐阅读
- common-lisp - 使用带有 parenscript 和 sigil 的 quicklisp
- xamarin.forms - bindableProperty 无法获取值?
- c++ - 1-10的中序二叉搜索树遍历
- python - 如何通过反向按箭头键来阻止蛇进入自身
- angular - 是否可以找出 ANGULAR 2+ 项目何时构建在组件中?
- c# - 如何在 web.config C# 中设置回收应用程序池设置
- ios - 如何在 Nativescript IOS Webview 上更改用户代理或设置为桌面模式
- python - 如何在python中的任何变量中申请循环
- android - Firebase - 从 startDate 到 endDate 获取数据
- python - Python数据框如何获取重复计数> 1的行