我在我的一个存档页面上添加了以下代码,就在循环之前。我需要这个特定的档案按字母顺序显示,而不是按时间顺序显示。这就是它应该做的事情。
global $query_string;
$posts = query_posts($query_string . '&orderby=title&order=asc&posts_per_page=-1');
我还需要它来排除特定的分类术语。我的分类法被称为“公司类型”,我希望它排除术语“特色”。我可以通过添加&company-type=featured
来过滤它以仅显示分类术语,但我需要完成相反的操作。
我发现旨在实现此目的的一切都使用了非常不同的语法。我试图将我当前的参数与该语法相匹配,但没有运气,我无法弄清楚它是如何适合这个例子的。我见过的示例使用tax_query
参数,但我无法使用我的代码。
我知道可能有多种方法可以实现这一点,而且我已经读到使用query_posts
并不一定是最好的解决方案,但它是迄今为止我唯一能够完成的工作。谁能帮我?
答案 0 :(得分:0)
好的,我明白了。我使用了不同的语法,我曾尝试过几次,但它并没有为我工作,因为我不知道如何将$query_string
中的原始参数包括在内。
有一个名为wp_parse_args
的WordPress函数可以让它们为您提供相同的格式。这是我最终得到的代码。 (我也改为WP_Query
而不是query_posts
,现在我明白为什么以前它不适合我。)
global $query_string;
$args = array(
'tax_query' => array (
array(
'taxonomy' => 'company-type', // My Custom Taxonomy
'terms' => 'featured', // My Taxonomy Term that I wanted to exclude
'field' => 'slug', // Whether I am passing term Slug or term ID
'operator' => 'NOT IN', // Selection operator - use IN to include, NOT IN to exclude
),
),
'posts_per_page' => -1,
'orderby' => 'title',
'order'=>'ASC'
);
$args = wp_parse_args( $query_string, $args );
$query = new WP_Query( $args );