从产品的ID中获取类别?

时间:2012-11-23 作者:Rodrigo Sanz

我有ID 来自产品(1345) 如何获取特定产品的类别名称?

我试着

$post_categories = wp_get_post_categories( $post->ID );
print_r( $post_categories );
但它输出:

Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) Array ( )
这是什么意思?

谢谢

4 个回复
最合适的回答,由SO网友:Mridul Aggarwal 整理而成

因为这个问题被标记为woocommerce,所以我假设它是由woocommerce wordpress插件创建的产品CPT。如果不是这样的话,这个答案就不适用了。

产品类别不是普通类别,它们是专门为产品创建的自定义分类法,仅标记为;类别;。

您应该仔细阅读woocommerce文档,找到一些可以为您做到这一点的功能,如果您找不到任何东西,可以尝试其他解决方案。为此,首先您应该知道分类法的名称。当您访问后端的“类别编辑”屏幕时,可以从浏览器的url内部复制它。然后您可以使用wp_get_post_terms 获取条款。

SO网友:Unicco

Option #1

使用此功能获取所有product\\u cat

global $product;

$terms = get_the_terms( $product->get_id(), \'product_cat\' );

Offical docs

<人力资源>Option #2如果您只需要他们的ID,则可以获取与特定product, 使用此功能:

global $product;

$product_cats_ids = wc_get_product_term_ids( $product->get_id(), \'product_cat\' );

Official docs

<人力资源>

Extra

例如,如果要打印类别名称,则需要类别术语对象。可以使用get_term_by().

例如:

foreach( $product_cats_ids as $cat_id ) {
    $term = get_term_by( \'id\', $cat_id, \'product_cat\' );

    echo $term->name;
}

SO网友:Rodrigo Sanz

我回答了自己的问题,这是我的工作:

<?php 
$term_list = wp_get_post_terms($id_product,\'product_cat\',array(\'fields\'=>\'ids\'));
$cat_id = (int)$term_list[0];
echo get_term_link ($cat_id, \'product_cat\');

?>
感谢阿加瓦尔先生的帮助

SO网友:Adam Colton
<?php
   $terms = get_the_terms($product->ID, \'product_cat\');
       foreach ($terms as $term) {

         $product_cat = $term->name;
            echo $product_cat;
              break;
          }
   ?>
结束

相关推荐

plugins_url vs plugin_dir_url

我看到WordPress插件在为一些文件夹创建常量时使用plugins\\u url或plugin\\u dir\\u url。一个比另一个好吗?示例:define( \'MEMBERS_URI\', trailingslashit( plugin_dir_url( __FILE__ ) ) ); define( \'WPACCESS_INC\', plugins_url( \'inc\', __FILE__ ) , true );