IDでWooCommerce製品カテゴリリンクを取得するにはどうすればよいですか?
3 回答
- 投票
-
- 2014-10-03
別の更新(2015年9月):
結局のところ、
get_term_link
を使用できます.問題は、文字列を整数に変換する必要があることでした. Stack Overflowのヒントを使用して、で(int)$ valueを使用して変換する最速の方法を確認しましたPHP.したがって、foreachループでスラッグを使用したくない場合は、次のようになります.
$woo_cat_id_int = (int)$woo_cat_id; //convert
get_term_link
のスラッグの代わりに、その変換された値が使用されます.それが誰かを助けることを願っています. :-)
私が理解したようです.
get_term_link を使用しました.そして、私はそれをこのように使用していたため、エラーが発生していました:
get_term_link( $woo_cat_id, 'product_cat' );
このエラーが発生した理由:
クラスWP_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
Another update (Sept. 2015):
I can use
get_term_link
after all. The problem was that the string needed to be converted to an integer. Used a Stack Overflow tip for the fastest way to convert it using the (int)$value in PHP.So it would look like this if you don't want to use the slug in the foreach loop:
$woo_cat_id_int = (int)$woo_cat_id; //convert
That converted value is used instead of the slug in
get_term_link
. Hope it helps someone. :-)
Looks like I figured it out.
I used get_term_link. And I was getting an error because I was using it this way:
get_term_link( $woo_cat_id, 'product_cat' );
Which gave me this error:
Object of class WP_Error could not be converted to string
So I went this route instead with the
slug
and it worked:$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
-
なぜIDを受け取らないのかはまだわかりませんが、スラッグはかかります.コーデックスは、get_term_linkがIDを取るべきだと言っています...Although I still don't understand why it won't take the ID but it takes the slug. The Codex says get_term_link should take the ID...
- 1
- 2014-10-03
- RachieVee
-
意味がありません-確かにIDで動作するはずです...多くの感謝Makes zero sense - should work with the id indeed... many thanks
- 1
- 2014-11-19
- akmur
-
Term_idは、オブジェクトの文字列です.getterm link関数で使用するには、最初に整数として解析する必要があります `get_term_link(intval($ woo_cat->term_id)、 'product_cat')`Term_id is a string on the object. To use it with the get term link function you need to parse it as an integer first `get_term_link( intval($woo_cat->term_id), 'product_cat' )`
- 3
- 2015-01-28
- forsvunnet
-
forsvunnetによる解決策は私にとって完璧に目覚めましたThe solution by forsvunnet woked perfectly for me
- 0
- 2016-08-31
- Shane Jones
-
- 2014-12-16
ありがとう、私は使用します
foreach ( $terms as $term ) { $term_link = get_term_link( $term ); echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '</a></li>'; }
完全に機能します.
Thanks, I use
foreach ( $terms as $term ) { $term_link = get_term_link( $term ); echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '</a></li>'; }
It works perfectly.
-
- 2015-09-18
$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()
によって返されます.$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()
does work smoothly, when using the object returned byget_categories()
.
WooCommerceの製品カテゴリは、
product_cat
と呼ばれるカスタム分類法です.私が書いている関数では、get_categories
をtaxonomy
パラメーターをproduct_cat
に設定して使用しています.すべてが正常に機能し、ID、名前、さらにはスラッグという用語を取得できます.私が理解できないのは、リンクを表示する方法です.どうやらget_category_link
はカスタム分類法では機能せず、get_term_link
も機能しないため、エラーが発生します.これが私が持っているものです:提案?