我需要将所有产品标签显示为主页上的下拉列表。我尝试了以下代码,但它没有用。
$terms = get_terms( 'product_tag' );
$term_array = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
$term_array[] = $term->name;
}
}
它总是返回一个空数组。有什么建议?感谢。
答案 0 :(得分:2)
我不确定dropdown
的含义,但会使用<select>
作为答案。
在你的functions.php中
function get_some_tags_man(){
$terms = get_terms( array(
'hide_empty' => false, // only if you want to hide false
'taxonomy' => 'product_tag',
)
);
$html = '';
if($terms){
$html .= '<select name="terms" id="someID">';
foreach($terms as $term){
$html .= "<option name='$term->name'>$term->name</option>";
}
$html .= '</select>';
}
return $html;
}
在主题文件中:
<?php echo get_some_tags_man(); ?>
答案 1 :(得分:0)
我刚刚尝试了代码(在产品页面和商店页面中)并且它有效。 主页是指商店页面?您进入网站时显示的第一页。 我使用的主题是StoreFront。 你能展示你正在使用的钩子吗?还是代码?看。这是我使用的完整代码。
add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_product_loop_tags', 15 );
function woocommerce_product_loop_tags() {
global $post, $product;
$tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
$idProducto=$product->id;
$product->get_title();
echo $product->get_tags( ', ', '<span class="tagged">' . _n( 'Tag:', 'Tags:', $tag_count, 'woocommerce' ) . ' ', '.</span>' );
$terms = get_terms( 'product_tag' );
$term_array = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
foreach ( $terms as $term ) {
echo " ".$term_array[] = $term->name;
}
}
}
答案 2 :(得分:0)
试试这个,它也会显示空标签。
$terms = get_terms( array( 'taxonomy' => 'product_tag', 'hide_empty' => false ) );