Я уже создал холст дочернюю тему. Я добавил свою пользовательскую страницу 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 по фильтрам и хукам не дают ясности, ГДЕ и КАК вызывать пользовательские фильтры и хуки, и как на самом деле заставить их взаимодействовать с существующим кодом … Я схожу с ума, пожалуйста, помогите.
Настройку верхнего меню можно выполнить в разделе заголовка, то есть в файле 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» указывает название меню.
Других решений пока нет …