Таким образом, у меня есть этот сайт, где вы можете видеть, что есть два меню: один рядом с логотипом другой сверху справа;
http://www.ducklingfarm.com
Они создаются с использованием этого кода в functions.php;
function register_my_menus() { register_nav_menus( array( 'header-menu' => __( 'Header Menu' ), 'extra-menu' => __( 'Extra Menu' ) ) ); } add_action( 'init', 'register_my_menus' );
и это мой код для использования меню;
<nav> <?php wp_nav_menu(array( 'theme_location' => 'header-menu' ) ) ?> </nav> <nav id="ecommerce"> <?php wp_nav_menu( array( 'theme_location' => 'extra-menu' ) ); ?> </nav>
И меню работают нормально, за исключением случаев, когда вы переходите к категориям на боковой панели, например «Статьи» или «События» на странице «Блог»;
http://www.ducklingfarm.com/blog/
Страница блога – это настраиваемый тип сообщения, и чтобы сделать работу категории, я добавил некоторый код в functions.php, и с тех пор меню не работают должным образом. Этот код есть;
add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() || is_tag()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('post','Blog'); $query->set('post_type',$post_type); return $query; } }
Поэтому я предполагаю, что с кодом что-то не так. Пожалуйста, помогите мне! Я бы очень признателен.
Лучший, Jaeeun
Я решил это, изменив последний код на это;
add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() && $query->is_main_query()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('post','Blog'); $query->set('post_type',$post_type); return $query; } }
Вы можете попробовать это (Нет необходимости в нескольких if
и $post_type = $post_type;
)
add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() && $query->is_main_query()) { $query->set( 'post_type', array( 'post', 'Blog' ) ); } return $query; }