我有两类
类别1(ID=1)
- 我想显示类别2和(类别1+类别2)中的帖子。
如果帖子仅在类别1中,则不应显示。
我使用了以下代码。
\'category__in\' => array(2)
这是可行的,但我认为这不是正确的方法。好像在将来,如果我添加一个新类别,那么我必须在代码中添加其id,以显示同样位于该新类别中的帖子。如果只在类别1中发布,是否有适当的方法排除仅在类别1中发布的帖子?
我有两类
类别1(ID=1)
如果帖子仅在类别1中,则不应显示。
我使用了以下代码。
\'category__in\' => array(2)
这是可行的,但我认为这不是正确的方法。好像在将来,如果我添加一个新类别,那么我必须在代码中添加其id,以显示同样位于该新类别中的帖子。如果只在类别1中发布,是否有适当的方法排除仅在类别1中发布的帖子?
这是一种非常不寻常的情况,我在这里能想到的唯一解决方案是获取一个类别ID数组,将其包含到category__in
为了跳过only 分配给类别1
为了实现这一目标,我们必须
使用get_terms()
获取所有类别。我们将使用exclude
要排除类别的参数1
从那个列表中。我们还将设置fields
参数到ids
为了获取类别ID数组
通过来自的结果传递数组get_terms()
到category__in
示例
$cat_ids = get_terms( \'category\', array( \'fields\' => \'ids\', \'exclude\' => 1 ) );
然后按如下方式使用\'category__in\' => $cat_ids,
请注意,您需要检查是否有get_terms()
并且在运行查询之前不会返回任何错误。您不想将空数组或错误传递给category__in
get_categories
想法并同意get_terms()
像get_terms
由使用get_categories
我们还可以设置get_terms()
只返回类别ID,这正是所需的全部内容。原始帖子已更新以反映更改
我只是猜测,但解决方案必须类似于
$args = array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'category\',
\'field\' => \'id\',
\'terms\' => array(1, 2),
\'operator\' => \'AND\'
)
)
);
$results = new WP_Query( $args );
嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post