在WooCommerce中,我正在尝试添加一个显示所有产品的选择。我使用以下代码:
<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
<option value="">- Select Value - </option>
<?php
$args = array( 'post_type' => 'product' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) :
$loop->the_post();
echo '<option value="#">'.the_title('','',false).'</option>';
endwhile;
?>
</select>
这有效,但我无法找到将产品链接添加到选项值的方法。
我已尝试过标准永久链接代码和
$url = get_permalink( $product_id );
但它不起作用。
答案 0 :(得分:0)
获取产品ID的答案是:
$product_id = $loop->post->ID;
因此,获取产品网址的代码可能是:
$product_id = $loop->post->ID; // Product ID
$product = wc_get_product($product_id); // WC_Product object (instance)
$product_link = $product->get_permalink( );
或者
$product_id = $loop->post->ID; // Product ID
$product_link = get_permalink( $product_id );
所以你的最终代码应该是:
<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
<option value="">- Select Value - </option>
<?php
$args = array( 'post_type' => 'product' );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) :
$loop->the_post();
$post_id = $loop->post->ID;
$product = wc_get_product($post_id);
$link = get_permalink( $post_id );
$title = $product->get_name();
echo '<option value="'.$link.'">'.$title.'</option>';
endwhile;
// Reset post data
wp_reset_postdata();
?>
</select>