Đoạn code bên dưới sẽ giúp bạn thêm link vào phía sau ví trí menu cho trước trên giao diện. Trong ví dụ này mình sẽ thêm link đăng nhập – đăng ký hoặc link quản lý tài khoản nếu người dùng đã đăng nhập vào menu.
function hocwp_theme_custom_wp_nav_menu_items_filter( $items, $args ) { if ( 'menu-2' == $args->theme_location ) { ob_start(); ?> <li class="dropdown user-tools"> <?php if ( is_user_logged_in() ) { $user = wp_get_current_user(); $fh = HOCWP_Theme_Query::page_by_template( 'custom/page-template-favorite-post.php' ); ?> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-user"></i> <span class="hello-user"><?php printf( __( 'Hello %s', 'hocwp-theme' ), $user->display_name ); ?></span> <b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="<?php echo get_edit_profile_url(); ?>"> <i class="fa fa-cog"></i> <?php _e( 'Settings', 'hocwp-theme' ); ?> </a> </li> <?php if ( $fh instanceof WP_Post ) { ?> <li> <a href="<?php echo get_permalink( $fh ); ?>"> <i class="fa fa-heart"></i> <?php _e( 'Saved Posts', 'hocwp-theme' ); ?> </a> </li> <?php } ?> <li> <a href="<?php echo wp_logout_url(); ?>"> <i class="fa fa-power-off"></i> <?php _e( 'Logout', 'hocwp-theme' ); ?> </a> </li> </ul> <?php } else { ?> <a href="<?php echo wp_login_url(); ?>" class="dropdown-toggle"> <i class="fa fa-user" aria-hidden="true"></i> <?php _e( 'Login/Signup', 'hocwp-theme' ); ?> </a> <?php } ?> </li> <?php $items .= ob_get_clean(); } return $items; } add_filter( 'wp_nav_menu_items', 'hocwp_theme_custom_wp_nav_menu_items_filter', 10, 2 );
Mình sẽ kiểm tra theo menu nhất định. Ở đoạn code trên mình dùng id là menu-2
, nếu đúng id thì kiểm tra người dùng đăng nhập hay chưa. Nếu người dùng chưa đăng nhập thì hiển thị link tới trang đăng ký hoặc đăng nhập. Ngược lại nếu người dùng đã đăng nhập rồi thì hiển thị link quản lý thông tin cá nhân.