使用特定标签在自定义帖子类型和分类中搜索

Posted

技术标签:

【中文标题】使用特定标签在自定义帖子类型和分类中搜索【英文标题】:Search in custom post type and taxonomy with specific tag 【发布时间】:2012-10-07 08:12:03 【问题描述】:

我有两种自定义帖子类型:产品和常见问题。产品帖子类型具有分类 product_tag。所以现在,我想在博客和常见问题解答中搜索文本“食物”以及那些标签为“食物”的产品。

这是查询的参数:

$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'product_tag',
            'field' => 'slug',
            'terms' => 'food'
        )
    ),
    'post_type' => array('post', 'faq', 'product'),
    'posts_per_page' => 6,
    's' => 'food',
    'paged' => $paged
);

但我没有得到任何结果。如果我从代码中删除 tax_query 数组,我会得到结果,但不会显示所有以食物为标签的产品。它只是搜索其中的文本。

那么,我需要进行哪些修改才能在此处获得相关帖子?

【问题讨论】:

【参考方案1】:

对于任何有兴趣的人,这就是我解决它的方法:

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$args1 = array(
    'post_type' => array('post', 'faq'),
    'posts_per_page' => 6,
    's' => $problem,
    'paged' => $paged
);

$args2 = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'product_tag',
            'field' => 'slug',
            'terms' => $problem
        )
    ),
    'post_type' => 'product',
    'posts_per_page' => 6,
    'paged' => $paged
);

$articleposts = get_posts( $args1 );
$productposts = get_posts( $args2 );

$mergedposts = array_merge( $articleposts, $productposts );

foreach( $mergedposts as $singlepost ) : setup_postdata( $singlepost );
?>
<h2><a href="<?php echo get_permalink( $singlepost->ID ); ?>"><?php echo $singlepost->post_title; ?></a></h2>
<?php endforeach; ?>

【讨论】:

以上是关于使用特定标签在自定义帖子类型和分类中搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义帖子类型永久链接中添加自定义分类?

php 在自定义帖子类型中显示所有自定义分类中的所有帖子。

php 在自定义帖子类型存档和一些自定义分类存档上强制命令到`menu_order`

Wordpress 自定义帖子类型和自定义分类

在自定义帖子循环中显示自定义类别

仅显示特定自定义帖子类型的自定义分类计数