如何通过ID获取WooCommerce产品类别链接?

时间:2014-10-03 作者:RachieVee

WooCommerce的产品类别是一种称为product_cat. 在我编写的函数中,我使用get_categories 使用taxonomy 参数设置为product_cat. 一切都很好,我可以得到这个词的id,名字,甚至鼻涕虫。我搞不懂的是如何让链接显示出来。显然地get_category_link 不适用于自定义分类法和get_term_link 也不起作用,我出错了。以下是我所拥有的:

$prod_cat_args = array(
  \'taxonomy\'     => \'product_cat\', //woocommerce
  \'orderby\'      => \'name\',
  \'empty\'        => 0
);

$woo_categories = get_categories( $prod_cat_args );

foreach ( $woo_categories as $woo_cat ) {
    $woo_cat_id = $woo_cat->term_id; //category ID
    $woo_cat_name = $woo_cat->name; //category name

    $return .= \'<a href="\' . get_category_link( $woo_cat_id ) . \'">\' . $woo_cat_name . \'</a>\';
}//end of $woo_categories foreach  
建议?

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

另一更新(2015年9月):

我可以使用get_term_link 毕竟问题是字符串需要转换为整数。使用了Stack Overflow tip 以最快的方式在PHP中使用(int)$值进行转换。

如果你不想在foreach循环中使用slug,它看起来是这样的:

$woo_cat_id_int = (int)$woo_cat_id; //convert 
使用转换后的值代替中的段塞get_term_link. 希望对某人有所帮助。:-)

看来我已经明白了。

我用过get_term_link. 我得到了一个错误,因为我这样使用它:

get_term_link( $woo_cat_id, \'product_cat\' );
这给了我这个错误:

类WP\\u Error的对象无法转换为字符串

所以我选择了这条路线slug 它成功了:

$prod_cat_args = array(
  \'taxonomy\'     => \'product_cat\', //woocommerce
  \'orderby\'      => \'name\',
  \'empty\'        => 0
);

$woo_categories = get_categories( $prod_cat_args );

foreach ( $woo_categories as $woo_cat ) {
    $woo_cat_id = $woo_cat->term_id; //category ID
    $woo_cat_name = $woo_cat->name; //category name
    $woo_cat_slug = $woo_cat->slug; //category slug


    $return .= \'<a href="\' . get_term_link( $woo_cat_slug, \'product_cat\' ) . \'">\' . $woo_cat_name . \'</a>\';
}//end of $woo_categories foreach  

SO网友:william007

谢谢,我用

foreach ( $terms as $term ) {
$term_link = get_term_link( $term );
 echo \'<li><a href="\' . esc_url( $term_link ) . \'">\' . $term->name . \'</a></li>\';
}
它工作得很好。

SO网友:Devendra chauhan

$prod_cat_args = array(
\'taxonomy\'     => \'product_cat\', //woocommerce
            \'orderby\'      => \'name\',
            \'empty\'        => 0
            );

            $terms = get_categories( $prod_cat_args );
            //$term_id=6;
            foreach ( $terms as $term ) {
            $term_link = get_term_link( $term );
            echo \'<li><a class="shopping-now" href="\' . esc_url( $term_link ) . \'">\' . $term->name . \'</a></li>\';
            }
get_term_link() 使用返回的对象时,工作是否顺利get_categories().

结束

相关推荐