在 WooCommerce 中使用 WC_Query 按作者 ID 获取产品?
Get products by author id using a WC_Query in WooCommerce?
我试图在 WooCommerce 中使用 WC_Query 通过 post 作者 ID 获取产品,因此我尝试包含 一个新的自定义 meta_key “_author”,具有以下内容:
add_filter( 'woocommerce_product_data_store_cpt_get_products_query', 'handling_custom_meta_query_keys', 10, 3 );
function handling_custom_meta_query_keys( $wp_query_args, $query_vars ) {
$meta_key = '_author';
if ( ! empty( $query_vars[$meta_key] ) ) {
$wp_query_args['meta_query'][] = array(
'key' => $meta_key,
'value' => esc_attr( $query_vars[$meta_key] ),
'operator' => '==',
);
}
return $wp_query_args;
}
然后我尝试将它与 wc_get_products()
一起使用:
$product_list = wc_get_products( array('_author' => get_current_user_id()) );
但它 return 空数组。有什么想法吗?
您可以像这样使用自定义查询
<?php
$authorID = get_the_author_meta('ID');
$args = array(
'post_type' => 'product',
'post_status' => 'publish'
'posts_per_page' => 12,
'product_cat' => 'pants'
'author' => $authorID
);
$loop = new WP_Query( $args );
?>
<div class="author_products">
<?php if ( $loop->have_posts() ) { ?>
<ul class="author_pubproducts">
<?php while ( $loop->have_posts() ) : $loop->the_post();
woocommerce_get_template_part( 'content', 'product' );
endwhile; ?>
</ul>
<?php
} else {
echo __( 'No products found', 'textdomain' );
}
wp_reset_postdata();
?>
希望有用
您可以使用未记录的参数“作者”在 WC_Query 中按作者 ID 简单地获取产品,如下所示:
$products = wc_get_products( array(
'status' => 'publish',
'limit' => -1,
'author' => get_current_user_id()
) );
您将获得一个包含 WC_Product
个对象的数组
我试图在 WooCommerce 中使用 WC_Query 通过 post 作者 ID 获取产品,因此我尝试包含 一个新的自定义 meta_key “_author”,具有以下内容:
add_filter( 'woocommerce_product_data_store_cpt_get_products_query', 'handling_custom_meta_query_keys', 10, 3 );
function handling_custom_meta_query_keys( $wp_query_args, $query_vars ) {
$meta_key = '_author';
if ( ! empty( $query_vars[$meta_key] ) ) {
$wp_query_args['meta_query'][] = array(
'key' => $meta_key,
'value' => esc_attr( $query_vars[$meta_key] ),
'operator' => '==',
);
}
return $wp_query_args;
}
然后我尝试将它与 wc_get_products()
一起使用:
$product_list = wc_get_products( array('_author' => get_current_user_id()) );
但它 return 空数组。有什么想法吗?
您可以像这样使用自定义查询
<?php
$authorID = get_the_author_meta('ID');
$args = array(
'post_type' => 'product',
'post_status' => 'publish'
'posts_per_page' => 12,
'product_cat' => 'pants'
'author' => $authorID
);
$loop = new WP_Query( $args );
?>
<div class="author_products">
<?php if ( $loop->have_posts() ) { ?>
<ul class="author_pubproducts">
<?php while ( $loop->have_posts() ) : $loop->the_post();
woocommerce_get_template_part( 'content', 'product' );
endwhile; ?>
</ul>
<?php
} else {
echo __( 'No products found', 'textdomain' );
}
wp_reset_postdata();
?>
希望有用
您可以使用未记录的参数“作者”在 WC_Query 中按作者 ID 简单地获取产品,如下所示:
$products = wc_get_products( array(
'status' => 'publish',
'limit' => -1,
'author' => get_current_user_id()
) );
您将获得一个包含 WC_Product
个对象的数组