2016-06-11 5 views
0

Итак, я нашел этот код, который я изменил в соответствии с моими потребностями. Кстати, я использую WooCommerce, что объясняет «туалет» в некоторых из вызовов функции:WordPress add Login/Logout to menu editor

//Add login/logout link to primary menu 
add_filter('wp_nav_menu_items', 'add_loginout_link', 10, 2); 
function add_loginout_link($items, $args) { 
    if (is_user_logged_in() && $args->theme_location == 'primary') { 
     $items .= '<li><a href="'. wc_get_endpoint_url('customer-logout', '', wc_get_page_permalink('myaccount')) .'">Log Out</a></li>'; 
    } 
    elseif (!is_user_logged_in() && $args->theme_location == 'primary') { 
     $items .= '<li><a href="'. wc_get_page_permalink('myaccount') .'">Log In</a></li>'; 
    } 
    return $items; 

Это добавляет пункты меню Логин/выход из системы, и они прекрасно работают. Тем не менее, они застряли в конце меню, на данный момент. Я хотел бы иметь возможность редактировать позицию с помощью редактора в wp-admin. Решение, о котором я думал, состояло в том, чтобы, возможно, просто создать страницы входа и выхода из системы, а также использовать переадресацию местоположения заголовка с этими строками кода в них, чтобы получить правильные URL-адреса, но проблема, которую я вижу, заключается в том, что всегда будет элемент входа в систему и выход из системы, независимо от того, какой статус пользователь в данный момент. Может быть, есть способ динамически добавлять правило CSS всего сайта, чтобы скрыть противоположный пункт меню на основе состояния входа?

Или есть более простой способ?

ответ

1

Не лучшая идея, но вы можете попробовать. Создать в разделе меню пункт новое меню сор-администратора, как "Custom Link"

Log Out

http://www.example.com/account/customer-logout/

Войдите в

http://www.example.com/account/

И добавить пользовательский класс на WordPress пункт меню для управления видимостью Например, вы увидите «вход в систему» ​​на теле страницы и скроете ссылку «Войти» или измените ее на «Учетная запись» с помощью та же связь.

+0

По классу, я полагаю, вы имеете в виду класс CSS? Как я могу динамически модифицировать CSS, как это, в зависимости от состояния входа пользователя? –

+0

CSS класс. Добавить класс следующим образом [ссылка] (http://sevenspark.com/how-to/how-to-add-a-custom-class-to-a-wordpress-menu-item) И вы можете работать с CSS (скрыть LogOut или LogIn) Например: к элементу Login добавьте класс «пользователь-гость» и в CSS добавьте .logged-in .user-guest {display: none;}, чтобы зарегистрированные пользователи не увидели кнопку входа в систему – dkruchok

+0

Oh wow , Я не понял, что тело автоматически добавляет класс .logged-in, когда пользователь входит в систему. Это невероятно. Хорошо, это определенно звучит как самый простой способ сделать это. Я также не уверен, что это лучшая идея, но я думаю, что это лучше, чем моя идея с переадресацией заголовка –

 Смежные вопросы

  • Нет связанных вопросов^_^