在产品类别档案中,如何显示具有相同/相似PROD_CAT插件结构的帖子?

时间:2016-12-12 作者:Peter Noges

我将撰写关于每个产品类别(Product\\u cat on products)的帖子,并选择按Product\\u cat层次分类法对帖子进行分组(关联)。为了做到这一点而不复制分类法,我在函数中注册了它。php类似:

add_action( \'init\', \'register_product_cat_taxonomy_for_post_object\' );
function register_product_cat_taxonomy_for_post_object() {
     register_taxonomy_for_object_type( \'product_cat\', \'post\' ); 
}
很像类别档案,我碰巧使用了woocommerce,默认情况下,它允许用户按产品类别浏览产品档案。他们只需单击提供的product\\u cat breadcumbs和我相信的存档产品。php将显示product\\u cat与单击的面包屑相匹配的产品列表。

我对我的下一个目标有困难。我计划加入archive-product.php do_action( ‘woocommerce_after_main_content’ ); 注入一些自定义功能,但我在编写自定义功能时遇到了问题。我正在寻求帮助,以编写两个不同的查询/显示代码来显示:

1) 其product\\u cat Slug列表至少与上述面包屑中product\\u cat Slug列表匹配的帖子。当我说“谁的…Product\\u猫鼻涕虫的帖子”时,指的是register_product_cat_taxonomy_for_post_object() 上述功能用于澄清。

2) 其product_猫鼻涕虫列表与上述面包屑中product_猫鼻涕虫列表完全匹配的帖子。当我说“谁的…Product\\u猫鼻涕虫的帖子”时,指的是register_product_cat_taxonomy_for_post_object() 上述功能用于澄清。

最终,我的目标是写帖子,分配帖子特定的product\\u cat术语,然后计算出#1和#2,以便按产品类别浏览面包屑产品的用户也可以看到(通过我的#1和#2)与他们当前在存档产品中浏览的产品类别相关的帖子。php

非常感谢。

1 个回复
SO网友:CodeMascot

这里我为您编写了一个函数-

function the_dramatist_get_product_cat_posts( $args = array() ) {
    $default_args = array(
        \'taxonomy\' => \'product_cat\',
        \'get_post_type\' => \'post\'
    );
    $t = array();
    $param = wp_parse_args($args, $default_args);
    $prod_terms = get_the_terms(get_the_ID(), $param[\'taxonomy\']);
    foreach ($prod_terms as $prod_term ) {
        $t[] = $prod_term->term_id;
    }
    $posts = get_posts(array(
        \'post_type\' => $param[\'get_post_type\'],
        \'numberposts\' => -1,
        \'tax_query\' => array(
            array(
                \'taxonomy\' => $param[\'taxonomy\'],
                \'field\' => \'id\',
                \'terms\' => $t,
                \'include_children\' => false
            )
        )
    ));

    return $posts;
}
通过调用以下函数the_dramatist_get_product_cat_posts() 您将获得与当前产品相关的所有帖子product_cat 分类术语。它将为您提供所有post对象。然后你可以运行foreachfor 循环以根据需要组织帖子。您可以临时执行print_r 了解返回的数据结构。这将帮助您理解数据。

希望这有帮助。

相关推荐

Get archives as array

我正在寻找一种方法来获取从wp_get_archives 作为数组,类似于get_categories. 我需要这样做才能修改要使用的post计数器- [#] 而不是(#). 请参见下面我的当前代码:My code for categories, which displays as desired:$cats = get_categories(); if ($cats) { echo \"<section class=\'widget\'>\"; ech