当前位置: 首页 > 知识库问答 >
问题:

按产品ID获取产品自定义分类术语

裴焱
2023-03-14

我已经为“产品”帖子类型注册了两个分类法。称他们为帕乌品牌

我已经创建了一个前端表单来编辑通过URL参数$product\u id获取产品数据的产品。

我需要的是获得pa_品牌的相关术语

以下仅适用于单个产品页面,因此我可以获得与产品相关的正确术语。

$models = get_the_terms( $product->get_ID(), 'pa_model' );
echo '<pre>'; print_r( $models ); echo '</pre>';

$brands = get_the_terms( $product->get_ID(), 'pa_brand' );
echo '<pre>'; print_r( $brands ); echo '</pre>';

$cats = get_the_terms( $product->get_ID(), 'product_cat' );
echo '<pre>'; print_r( $cats ); echo '</pre>';

___________________________

RESULTS:

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 28
            [name] => FKS
            [slug] => fks
            [term_group] => 0
            [term_taxonomy_id] => 28
            [taxonomy] => pa_model
            [description] => 
            [parent] => 0
            [count] => 3
            [filter] => raw
        )

)

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 36
            [name] => MAN
            [slug] => man
            [term_group] => 0
            [term_taxonomy_id] => 36
            [taxonomy] => pa_brand
            [description] => 
            [parent] => 0
            [count] => 3
            [filter] => raw
        )

)

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 39
            [name] => Truck
            [slug] => truck
            [term_group] => 0
            [term_taxonomy_id] => 39
            [taxonomy] => product_cat
            [description] => 
            [parent] => 0
            [count] => 2
            [filter] => raw
        )

)

但如果页面不是单一产品,则为http://example.com/?manage_product=206,我得到两个pa\u品牌的以下WP\u错误

$models = get_the_terms( $product_id, 'pa_model' );
echo '<pre>'; print_r( $models ); echo '</pre>';

$brands = get_the_terms( $product_id, 'pa_brand' );
echo '<pre>'; print_r( $brands ); echo '</pre>';

$cats = get_the_terms( $product_id, 'product_cat' );
echo '<pre>'; print_r( $cats ); echo '</pre>';

___________________________

RESULTS:

WP_Error Object
(
    [errors] => Array
        (
            [invalid_taxonomy] => Array
                (
                    [0] => Invalid taxonomy.
                )

        )

    [error_data] => Array
        (
        )

    [additional_data:protected] => Array
        (
        )

)

WP_Error Object
(
    [errors] => Array
        (
            [invalid_taxonomy] => Array
                (
                    [0] => Invalid taxonomy.
                )

        )

    [error_data] => Array
        (
        )

    [additional_data:protected] => Array
        (
        )

)

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 39
            [name] => Truck
            [slug] => truck
            [term_group] => 0
            [term_taxonomy_id] => 39
            [taxonomy] => product_cat
            [description] => 
            [parent] => 0
            [count] => 2
            [filter] => raw
        )

)

短代码

function frontend_add_product_form($product_id){

    global $product_id;
    $product = new WC_Product( $product_id );

    $koostis = get_the_terms( $product_id, 'pa_brand', array( 'fields' => 'names' ) );
    echo 'koostis<br><pre>'; print_r( $koostis ); echo '</pre>';
}
add_shortcode('frontend-add-product-form', 'frontend_add_product_form');

我已经在这里面呆了好几个小时,不知道如何从定制的分类法中按产品ID获取相关术语?


共有1个答案

宋嘉禧
2023-03-14

我发现了问题。我必须为自定义分类法的init操作添加0

add_action( 'init', 'register_product_taxonomy', 0 );

function register_product_taxonomy() {

    register_taxonomy(
        'pa_brand',
        'product',
        array(
            'label' => __( 'Brand' ),
            'rewrite' => array( 'slug' => 'car_brand' ),
            'hierarchical' => true,
        )
    );  

    register_taxonomy(
        'pa_model',
        'product',
        array(
            'label' => __( 'Model' ),
            'rewrite' => array( 'slug' => 'car_model' ),
            'hierarchical' => true,
        )
    );
}
 类似资料:
  • 我在一个使用工具集类型生成“产品”帖子类型和“产品类别”分类法(产品类别)的网站上工作。现在我正在将WooCommerce添加到该站点,需要将“产品类别”分类设置为产品的WooCommerce分类,即Product_cat。WooCommerce已经选择了产品帖子类型,所有产品都出现在WooCommerce产品中。我只需要让分类也出现在那里。 我尝试使用一个名为Taxonomy Switcher的

  • 我试图在woocommerce中获得一个特定的自定义属性。我在这个网站上读了很多文章,其中提供了3-5种方法。在尝试了所有方法之后,对我来说唯一有效的方法就是循环所有属性——所有其他属性都不起作用。我有一个名为“pdfs”的自定义属性 以下尝试不起作用:(链接) 这是唯一的一个工作:(链接) 我更希望能够使用第一个选项之一。任何帮助都将不胜感激。谢谢

  • 我正在开发一个插件,它将放在我的woocommerce产品侧栏中。我需要的是,给定产品id/对象,它将找到2个具有我以前创建的相同自定义分类法的产品。 通过这段代码,我得到了产品中使用的术语列表,其中“colline”是自定义分类法: 问题是我不知道如何获取自定义分类id,以及如何根据自定义分类对其进行过滤。 我已经使用WP_Query查找同一类别的产品,代码如下: 如何更改代码以获得所需的分类i

  • 当我进入产品编辑页面时,有一个选项卡“属性”。在那里我可以设置属性名及其值。 我假设这就是在Woocommerce上为产品添加自定义属性的方式。 但是如何在循环中得到这个值呢? 我看到人们使用,但它希望我传递分类法和另一个参数数组。分类学是什么?我没有手动添加。论点是什么?

  • 我需要在单产品页面内容中输出WooCommerce产品ID。我有一个表格,它显示了几行不同的内容,但是这个表格非常适合显示所有的页面产品。但是当有人点击产品时,我想把它渲染到单个产品页面。我运气不好。 这就是我所拥有的,但我肯定这是大错特错的。

  • 我使用woocommerce插件创建了一个可变产品。在变量产品中,我创建了一个自定义属性“License Duration”,其值为“3个月| 6个月| 1年|寿命”。 现在我想在一个定制的单一产品模板上显示这个属性。 我试过以下解决方法 1. 这显示了