Необходимо настроить верхнее меню на холсте woothemes, в зависимости от того, вошел ли пользователь в систему или нет, мне нужно показать 1 меню вместо другого

Я уже создал холст дочернюю тему. Я добавил свою пользовательскую страницу woo-hooks.class.php в папку canvas-child, в которую скопировал весь код из оригинала и добавил сюда:

$this->hooks['header'] = array(
'woo_top' => array(
'content' => '',
'shortcodes' => 0,
'php' =>'

следующий код:

if ( is_user_logged_in() ) {
wp_nav_menu( array( "theme_location" => "top-menu-loggedin" ) );
} else {
wp_nav_menu( array( "theme_location" => "top-menu-loggedout" ) );
}

код, как будто его даже не существует, я знаю, что, вероятно, ошибся в том, что мне нужно сделать, но я не смог найти четкого руководства о том, как это сделать, просто какой-то код на некоторых форумах без контекста о как и где действовать (код, который я добавил, я нашел на форуме, но, думаю, я не добавил его в нужном месте). Руководства WP по фильтрам и хукам не дают ясности, ГДЕ и КАК вызывать пользовательские фильтры и хуки, и как на самом деле заставить их взаимодействовать с существующим кодом … Я схожу с ума, пожалуйста, помогите.

0

Решение

Настройку верхнего меню можно выполнить в разделе заголовка, то есть в файле header.php дочерней темы или в другом файле, указав параметр theme-location.

Вы можете написать код ниже, в вашей детской теме,

if (is_user_logged_in()){
wp_nav_menu(array(
'menu_class' => 'member-menu',
'menu'  => 'Members',
'theme_location'  => 'primary');
);
}else{
wp_nav_menu(array(
'menu_class' => 'top-menu',
'menu'  => 'Members non Logged in',
'theme_location'  => 'primary')
);
}

Здесь параметр «theme-location» указывает местоположение меню, а «menu» указывает название меню.

0

Другие решения

Других решений пока нет …