WooCommerce - 将产品网址添加到下拉值
WooCommerce - Add product urls to dropdown values
在 WooCommerce 中,我试图添加一个显示所有产品的 select。我正在使用以下代码:
<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>
这可行,但我找不到将产品 link 添加到选项值的方法。
我试过标准的 permalink 代码和
$url = get_permalink( $product_id );
但是不行。
此处获取产品 ID 的答案是:
$product_id = $loop->post->ID;
因此获取产品 URL 的代码可以是:
$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>
在 WooCommerce 中,我试图添加一个显示所有产品的 select。我正在使用以下代码:
<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>
这可行,但我找不到将产品 link 添加到选项值的方法。
我试过标准的 permalink 代码和
$url = get_permalink( $product_id );
但是不行。
此处获取产品 ID 的答案是:
$product_id = $loop->post->ID;
因此获取产品 URL 的代码可以是:
$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>