Доброго дня
Подскажите, пожалуйста. Имею следующую проблему:ссылка на ЛК из меню ведет не на страницу автора author.php (к примеру, https : //iepa.efp.by/author/dima/), а собственно на страницу личного кабинета account (https : //iepa.efp.by/account). Подскажите, пожалуйста, как реализовать, чтобы данная ссылка в зависимости от авторизации пользователя вела на разные адреса: если авторизован - то на https : //iepa.efp.by/author/{имя пользователя}/ как на скрине
,
если не авторизован - то по умолчанию на https : //iepa.efp.by/account.
Тему свою реализовал на основе стартовой темы clean-wp-template. Не могу понять как формируется меню, чтобы в нужном месте откорректировать код и сформировать ссылку в меню в зависимости от того авторизован пользователь или нет is_user_logged_in(). Вот функция из functions.php, формирующая меню:
if (!class_exists('bootstrap_menu')) {
class bootstrap_menu extends Walker_Nav_Menu {
private $open_submenu_on_hover;
function __construct($open_submenu_on_hover = true) {
$this->open_submenu_on_hover = $open_submenu_on_hover;
}
function start_lvl(&$output, $depth = 0, $args = array()) {
$output .= "\n<ul class=\"dropdown-menu\">\n";
}
function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
$item_html = '';
parent::start_el($item_html, $item, $depth, $args);
if ( $item->is_dropdown && $depth === 0 ) {
if (!$this->open_submenu_on_hover) $item_html = str_replace('<a', '<a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"', $item_html);
$item_html = str_replace('</a>', ' <b class="caret"></b></a>', $item_html);
}
$output .= $item_html;
}
function display_element($element, &$children_elements, $max_depth, $depth = 0, $args, &$output) {
if ( $element->current ) $element->classes[] = 'active';
$element->is_dropdown = !empty( $children_elements[$element->ID] );
if ( $element->is_dropdown ) {
if ( $depth === 0 ) {
$element->classes[] = 'dropdown';
if ($this->open_submenu_on_hover) $element->classes[] = 'show-on-hover';
} elseif ( $depth === 1 ) {
$element->classes[] = 'dropdown-submenu';
}
}
parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
}
}Помогите, пожалуйста, не могу понять как подменять ссылку.
Да, про личный кабинет на WP-Recall.
Хотелось бы, чтобы ссылка на личный кабинет из меню, также вела на страницу автора личного кабинета, если он авторизован.
А сейчас у меня получается так, что ссылка всегда ведет на страницу post_name = 'account'. Вот скрин
.
Может быть вы подскажете решение?