Is_archive()在公共查询变量存档页面上不起作用吗?

时间:2013-11-12 作者:its_me

公共查询变量是通过直接URL查询可用的变量。

E、 g。

example.net/?category_name=tech&tag=gadgets
但事实并非如此example.net/?category_name=tech&tag=gadgets 显示archive? 它肯定使用archive.php 模板,但由于某种原因is_archive(); 条件标记似乎不起作用。

如果is_archive(); 检查这些档案的条件标签不是吗,是什么?

2 个回复
最合适的回答,由SO网友:gmazzap 整理而成

Try this:

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
  }
}
SO网友:Ivan Hanák

但没有举例说明。净/?category\\u name=技术(&U);标记=小工具是否显示存档?

是的,显示(is_archive() 返回true)但是,

它肯定使用了存档。php

不,在这种情况下category.php 如果未找到,则tag.php 如果有这些文件,archive.php 显示您的内容。

根据template hierarchy, 在wordpress中,档案就是一切,它显示了几篇文章,然后又分为类别档案、标签档案、日期档案…

EDIT

If is\\u archive();检查这些档案的条件标签不是吗,是什么?

为此,使用的是is\\u category()、is\\u tag()…全部Conditional Tags

结束