Php Woocommerce产品筛选wp查询
一个客户端只希望变量产品在分类页面上显示为单个产品,我们需要对其进行筛选,我创建了wp查询来获取分类页面上的这些产品 类别页面的自定义查询示例:Php Woocommerce产品筛选wp查询,php,wordpress,loops,woocommerce,product,Php,Wordpress,Loops,Woocommerce,Product,一个客户端只希望变量产品在分类页面上显示为单个产品,我们需要对其进行筛选,我创建了wp查询来获取分类页面上的这些产品 类别页面的自定义查询示例: 当我将taxquery置于if(is_category('2312'){之外时,它可以正常工作,但是当taxquery处于这种状态时,它不工作,它会显示所有可变产品://请求插件推荐被认为是一个离题的话题。“默认的woocommerce产品过滤器不适用于自定义查询”-它可能会提供一些钩子/过滤器来操作其查询,不过,我会首先研究这一点。(pre_get_
当我将taxquery置于
if(is_category('2312'){
之外时,它可以正常工作,但是当taxquery处于这种状态时,它不工作,它会显示所有可变产品://请求插件推荐被认为是一个离题的话题。“默认的woocommerce产品过滤器不适用于自定义查询”-它可能会提供一些钩子/过滤器来操作其查询,不过,我会首先研究这一点。(pre_get_posts
是影响标准WP查询的常见WP钩子;不确定WooComerce查询是否也可以使用这些钩子来操作,或者它是否可以为此提供自己的钩子。)很抱歉,我不知道:/@04FS效果很好!我现在只有可变产品,但在某些类别页面上,我用functions.php中的新代码更新了我的问题,非常感谢:)那么逻辑上的结论是,条件实际上不是真的……做一个简单的分析var_dump(is_category('2312'));
,看看它能给你带来什么。(由于这是在非常早期的阶段执行的,在查看结果页面时,要找到这样的调试输出并不总是那么容易。然后在调试输出中添加一些独特的文本,例如var_dump('debugging is_category',is_category('2312');
)并使用[ctrl]+[f] 搜索调试是HTML源代码视图中的_category
)请求插件建议被认为是一个离题的问题。“默认的woocommerce产品过滤器不适用于自定义查询”-它可能会提供一些钩子/过滤器来操作其查询,不过,我会首先研究这一点。(pre_get_posts
是影响标准WP查询的常见WP钩子;不确定WooComerce查询是否也可以使用这些钩子来操作,或者它是否可以为此提供自己的钩子。)很抱歉,我不知道:/@04FS效果很好!我现在只有可变产品,但在某些类别页面上,我用functions.php中的新代码更新了我的问题,非常感谢:)那么逻辑上的结论是,条件实际上不是真的……做一个简单的分析var_dump(is_category('2312'));
,看看它能给你带来什么。(由于这是在非常早期的阶段执行的,在查看结果页面时,要找到这样的调试输出并不总是那么容易。然后在调试输出中添加一些独特的文本,例如var_dump('debugging is_category',is_category('2312');
)并使用[ctrl]+[f] 在HTML源代码视图中搜索调试是\u category
。)
<?php //showing products by category
$cat_name = 'sommerbettdecke'; // Product category name
$args = array(
'post_type' => 'product_variation',
'post_status' => 'publish',
'order' => 'ASC',
'posts_per_page' => -1,
'post_parent__in' => get_variation_parent_ids_from_term( $cat_name, 'product_cat', 'name' ), // Variations
'tax_query' => array( array(
'taxonomy' => 'pa_jahreszeit',
'field' => 'slug',
'terms' => 'sommer',
'operator' => 'IN',
) )
);
$wc_query = new WP_Query($args);?>
<p class="product-counter">Products on page <strong><?php echo $wc_query->post_count?></strong></p>
<ul class="products">
<!-- count all products on page -->
<?php if ($wc_query->have_posts()) :
while ($wc_query->have_posts()) :
$wc_query->the_post(); ?>
<!-- get attributes -->
<?php global $product; ?>
<?php $pa_fullung = array_shift( wc_get_product_terms( $product->id, 'pa_fullung', array( 'fields' => 'names' ) ) ); ?>
<?php $pa_grose = array_shift( wc_get_product_terms( $product->id, 'pa_grose', array( 'fields' => 'names' ) ) ); ?>
<!-- get product image -->
<?php $attachment_ids[0] = get_post_thumbnail_id( $product->id ); ?>
<?php $attachment = wp_get_attachment_image_src($attachment_ids[0], 'full' ); ?>
<!-- product display start here -->
<li class="product">
<a href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail( $product->id ) ) { ?>
<img src="<?php echo $attachment[0] ; ?>" class="card-image" />
<?php } ?>
<div class="produt-cat-loop">
<h2><?php the_title(); ?></h2>
<table>
<tbody><tr>
<td>Füllung:</td>
<td><?php echo $pa_fullung ?></td>
</tr>
<tr>
<td>Füllgewicht:</td>
<td><?php echo $pa_grose ?></td>
</tr>
<tr>
<td>Hülle:</td>
<td>Definisati atribut</td>
</tr>
</tbody>
</table>
</div>
<button class="btn-orange">Zum Produkt</button>
</a>
</li>
<!-- product display ends here -->
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<!-- no products message -->
<p><?php _e( 'No Products' ); ?></p>
<?php endif; ?>
</ul>
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $product ) {
$product->set('post_type', 'product_variation');
if (is_category( '2312' ) ) {
$taxquery = array(
array(
'taxonomy' => 'pa_jahreszeit',
'field' => 'slug',
'terms' => 'sommer',
'operator' => 'IN'
)
);
$product->set( 'tax_query', $taxquery );
}
}