is_archive () не работает в публичных страницах var var var?

Публичные запросы vars – это те, которые доступны и могут использоваться через прямой запрос URL.

Например

example.net/?category_name=tech&tag=gadgets 

Но не example.net/?category_name=tech&tag=gadgets показывает архив ? Он определенно использует шаблон archive.php , но по какой-то причине is_archive(); условный тег не работает.

Если is_archive(); не является условным тегом для проверки этих архивов, что это такое?

Solutions Collecting From Web of "is_archive () не работает в публичных страницах var var var?"

Попробуй это:

 add_action( 'template_redirect', 'my_test_if_archive' ); function my_test_if_archive() { global $wp_query; $qv = array_keys( $wp_query->query ); $archives = array('year', 'monthnum', 'day', 'w', 'm', 'author', 'post_type'); $is_archive = ! empty( array_intersect( $qv, $archives ) ); $is_tax = ! empty( $wp_query->tax_query->queries ); if ( $is_archive || $is_tax ) { // this is an archive } } 

Но не example.net/?category_name=tech&tag=gadgets показывает архив?

Да, показывает, ( is_archive () возвращает true) однако,

Он определенно использует archive.php

нет, в этом случае используется category.php , если не найден, то tag.php и если какой-либо из этих файлов, archive.php отображает ваше содержимое.

Согласно template hierarchy , в wordpress архив – это все, что отображает пару сообщений, затем оно делится на архив категорий, архив тегов, архив даты …

РЕДАКТИРОВАТЬ

Если is_archive (); не является условным тегом для проверки этих архивов, что это такое?

Для этой цели используются is_category (), is_tag () … целая куча из них. Conditional Tags