您如何按自定义分类搜索帖子?

时间:2015-01-14 作者:Roy

我正在尝试搜索附加了自定义分类法的最新帖子。我使用高级自定义字段插件添加了一个名为“brand\\u post\\u link”的自定义分类法,该分类法允许用户在博客帖子上标记一个品牌,这是一种与Woocommerce一起使用的名为“product\\u brand”的分类法。

我有一个product\\u brand分类归档,其中列出了所有产品品牌和单个产品品牌页面,其中列出了该品牌中的所有产品。然后我想做的是得到最新的博客帖子,上面贴着这个品牌的标签。

以下是我必须获取单个品牌页面上使用的某个品牌的所有产品的代码:

$brandData = get_queried_object();
$args = array(
    \'post_type\' => \'product\',
    \'post_status\' => \'publish\',
    \'ignore_sticky_posts\' => 1,
    \'posts_per_page\' => 12,
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'product_brand\',
            \'field\' => \'id\',
            \'terms\' => $brandData->term_id
            )
        )
);
$brandProducts = new WP_Query($args);
这很好,所以我认为下面的代码可以用来获取特定品牌的最新帖子:

$relatedBlogPostArgs = array(
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 1,
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'brand_post_link\',
            \'field\' => \'id\',
            \'terms\' => $brandData->term_id
        )
    )
);
$relatedBlogPosts = new WP_Query($relatedBlogPostArgs);
但是,这不会返回任何内容。我的逻辑或代码中是否有错误,或者代码是否正确,只是匹配了正确的名称/id/分类法等?

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

作为记录,我最终找到了这个问题的答案——我需要使用元查询而不是分类查询。正确的代码是:

$relatedBlogPostArgs = array(
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 1,
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
    \'meta_query\' => array(
        array(
            \'key\' => \'brand_post_link\',
            \'value\' => $brandData->term_id
        )
    )
);
$relatedBlogPosts = new WP_Query($relatedBlogPostArgs);

结束

相关推荐

Get taxonomy names by post id

我试图创建一个页面,在其中一个页面上显示几个帖子。到目前为止还不错。一切正常。现在,我在foreach循环中显示帖子,检查它们是否连接到页面。我需要的是wp_get_post_terms($post->ID); 但这行不通。有custom registered_taxonomy\'s那么我怎样才能得到所有taxonomy names 通过$post->ID?

您如何按自定义分类搜索帖子? - 小码农CODE - 行之有效找到问题解决它

您如何按自定义分类搜索帖子?

时间:2015-01-14 作者:Roy

我正在尝试搜索附加了自定义分类法的最新帖子。我使用高级自定义字段插件添加了一个名为“brand\\u post\\u link”的自定义分类法,该分类法允许用户在博客帖子上标记一个品牌,这是一种与Woocommerce一起使用的名为“product\\u brand”的分类法。

我有一个product\\u brand分类归档,其中列出了所有产品品牌和单个产品品牌页面,其中列出了该品牌中的所有产品。然后我想做的是得到最新的博客帖子,上面贴着这个品牌的标签。

以下是我必须获取单个品牌页面上使用的某个品牌的所有产品的代码:

$brandData = get_queried_object();
$args = array(
    \'post_type\' => \'product\',
    \'post_status\' => \'publish\',
    \'ignore_sticky_posts\' => 1,
    \'posts_per_page\' => 12,
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'product_brand\',
            \'field\' => \'id\',
            \'terms\' => $brandData->term_id
            )
        )
);
$brandProducts = new WP_Query($args);
这很好,所以我认为下面的代码可以用来获取特定品牌的最新帖子:

$relatedBlogPostArgs = array(
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 1,
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'brand_post_link\',
            \'field\' => \'id\',
            \'terms\' => $brandData->term_id
        )
    )
);
$relatedBlogPosts = new WP_Query($relatedBlogPostArgs);
但是,这不会返回任何内容。我的逻辑或代码中是否有错误,或者代码是否正确,只是匹配了正确的名称/id/分类法等?

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

作为记录,我最终找到了这个问题的答案——我需要使用元查询而不是分类查询。正确的代码是:

$relatedBlogPostArgs = array(
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 1,
    \'order\' => \'DESC\',
    \'orderby\' => \'date\',
    \'meta_query\' => array(
        array(
            \'key\' => \'brand_post_link\',
            \'value\' => $brandData->term_id
        )
    )
);
$relatedBlogPosts = new WP_Query($relatedBlogPostArgs);

相关推荐

如何控制根据Taxonomy术语显示什么模板?

我正在建立一个商业目录,并将给出一些背景,然后在最后有2个问题。The development URL is: http://svcta.lainternet.biz/The website I am rebuilding is: https://www.visitsimivalley.com/当前网站要求每个分类法类型具有唯一的业务概要文件。例如,如果您是一家酒店,并且您也有会议室和婚礼场地,那么您最终会得到3个列表,一个用于酒店,一个用于会议,一个用于婚礼。我希望有一个主配置文件,其中包含我们将显示的