Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Woocommerce产品筛选wp查询_Php_Wordpress_Loops_Woocommerce_Product - Fatal编程技术网

Php Woocommerce产品筛选wp查询

Php Woocommerce产品筛选wp查询,php,wordpress,loops,woocommerce,product,Php,Wordpress,Loops,Woocommerce,Product,一个客户端只希望变量产品在分类页面上显示为单个产品,我们需要对其进行筛选,我创建了wp查询来获取分类页面上的这些产品 类别页面的自定义查询示例: 当我将taxquery置于if(is_category('2312'){之外时,它可以正常工作,但是当taxquery处于这种状态时,它不工作,它会显示所有可变产品://请求插件推荐被认为是一个离题的话题。“默认的woocommerce产品过滤器不适用于自定义查询”-它可能会提供一些钩子/过滤器来操作其查询,不过,我会首先研究这一点。(pre_get_

一个客户端只希望变量产品在分类页面上显示为单个产品,我们需要对其进行筛选,我创建了wp查询来获取分类页面上的这些产品

类别页面的自定义查询示例:


当我将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 );
  }
}