ฉันจะเพิ่มลิงค์ไปยังเมนูนำทางหลักพร้อมclass="right"
แอตทริบิวต์ได้อย่างไร
ฉันพยายามเพิ่มลิงค์แบบคงที่example.com/wp-logout.php?action=logout
แต่นำไปสู่หน้ายืนยันการออกจากระบบ มีวิธีที่จะทำให้มันเป็นลิงค์ออกจากระบบหรือไม่?
wp_loginout()
?
ฉันจะเพิ่มลิงค์ไปยังเมนูนำทางหลักพร้อมclass="right"
แอตทริบิวต์ได้อย่างไร
ฉันพยายามเพิ่มลิงค์แบบคงที่example.com/wp-logout.php?action=logout
แต่นำไปสู่หน้ายืนยันการออกจากระบบ มีวิธีที่จะทำให้มันเป็นลิงค์ออกจากระบบหรือไม่?
wp_loginout()
?
คำตอบ:
คุณสามารถทำได้โดยใช้wp_nav_menu_items
เบ็ด มาดูโค้ดต่อไปนี้ซึ่งแสดงลิงค์ล็อกอิน / ล็อกเอาต์บนตำแหน่งprimary
เมนู
add_filter( 'wp_nav_menu_items', 'wti_loginout_menu_link', 10, 2 );
function wti_loginout_menu_link( $items, $args ) {
if ($args->theme_location == 'primary') {
if (is_user_logged_in()) {
$items .= '<li class="right"><a href="'. wp_logout_url() .'">'. __("Log Out") .'</a></li>';
} else {
$items .= '<li class="right"><a href="'. wp_login_url(get_permalink()) .'">'. __("Log In") .'</a></li>';
}
}
return $items;
}
นี่คือสิ่งที่เรานำมาใช้ในตัวอย่างด้านบน
wp_nav_menu_items
hook ก่อนและแนบฟังก์ชันเข้ากับมันprimary
ตำแหน่งของธีมเราได้ตรวจสอบว่าผู้ใช้ลงชื่อเข้าใช้หรือไม่Log Out
การเชื่อมโยงมิฉะนั้นLog In
การเชื่อมโยงclass="right"
รหัสข้างต้นเพื่อตอบสนองความต้องการของคุณคุณสามารถค้นหาคำอธิบายโดยละเอียดในบล็อกนี้
top
เมนูif ($args->theme_location == 'top')
เท่านั้น:
primary-menu
ลองเพิ่มลิงค์ที่กำหนดเองด้วยhttp://example.com/wp-login.php?action=logout มันใช้ได้สำหรับฉัน!
เมนูส่วนท้ายของฉันเป็นวิดเจ็ตดังนั้นฉันจึงมีปัญหาในการใช้รหัสโดย Chittaranjan เวอร์ชันที่แก้ไขต่อไปนี้ใช้งานได้สำหรับฉัน ฉันได้เปลี่ยนลิงก์และทำให้พวกเขาเป็น "ไดนามิก": การเข้าสู่ระบบจะนำไปสู่หน้าเว็บที่คุณเลือกการออกจากระบบจะอยู่ในหน้าปัจจุบันหรือส่งไปที่บ้านหากหน้าปัจจุบันเป็นหน้าเข้าสู่ระบบ (ส่วนตัว) ของคุณ เป็นการดีที่จะตรวจสอบว่าหน้าเข้าสู่ระบบของคุณเป็นส่วนตัวจริง ๆ หรือไม่ แต่ฉันไม่รู้ว่าต้องทำอย่างไรขออภัย
add_filter( 'wp_nav_menu_items', 'wti_loginout_menu_link', 10, 2 );
function wti_loginout_menu_link( $items, $args ) {
//var_dump($args);
if (($args->menu->slug == 'footer')) {
if (is_user_logged_in()) {
$loginlink = '/your-private-page';
$logoutlink = get_permalink();
if (strpos($logoutlink, $loginlink) !== false) {
$logoutlink = '/';
}
$items .= '<li class="right"><a href="'. wp_logout_url($logoutlink) .'">'. __("Log Out") .'</a></li>';
} else {
$items .= '<li class="right"><a href="'. wp_login_url($loginlink) .'">'. __("Log In") .'</a></li>';
}
}
return $items;
}
add_filter( 'wp_nav_menu_items', 'add_loginout_link', 15, 5 );
function add_loginout_link( $menus, $args ) {
if (is_user_logged_in() && $args->theme_location == 'primary') {
$menus .= '<li><a href="'. wp_logout_url( get_permalink( woocommerce_get_page_id( 'myaccount' ) ) ) .'">Log Out</a></li>';
}
elseif (!is_user_logged_in() && $args->theme_location == 'primary') {
$menus .= '<li><a href="' . get_permalink( woocommerce_get_page_id( 'myaccount' ) ) . '">Log In</a></li>';
}
return $menus;
}