WooCommerce中的Meta_query

时间:2015-07-07 10:24:51

标签: php wordpress woocommerce

我正在尝试在WooCommerce产品页面中使用meta_query。

这是我正在使用的代码:

  <?php
  $args = array(
      'post_type' => 'product',
      'posts_per_page' =>8,
      'meta_query' => array(
            array(
                'key' => 'autor',
                'value' => '"'.get_the_ID().'"',
                'compare' => 'LIKE',
            )
      ),
  );
  $products = new WP_Query($args);
  if ($products->have_posts()) :
      $i=0;
      while ($products->have_posts()) : $products->the_post();
          $autor = get_field('autor');
          if($i % 2 ==0) ?>


                    <h3><?php the_title();?></h3>

  <?php  if ($i % 2 != 0)
  $i++;
  endwhile;endif;?>

它没有显示任何标题,如果我删除了meta_query它显示所有产品,所以问题是关系meta_query代码不起作用。任何想法如何在WooCommerce模板上使用它?

1 个答案:

答案 0 :(得分:0)

您使用get_the_ID()在meta_query args中获取作者ID。

get_the_ID() - 将获得帖子ID,而不是作者ID。

要通过authoкid获取所有帖子,您的args应如下所示:

$args = array(
        'author' => 1,
        'post_type' => 'product',
        'posts_per_page' => 8,
);

我也看到你使用get_field() - 函数。 WordPress核心没有这个功能。您可以改为使用get_the_author()

最终您的代码将如下所示:

<?php
$args = array(
        'author' => 1,
        'post_type' => 'product',
        'posts_per_page' => 8,
);
$products = new WP_Query($args);

if ($products->have_posts()) :
        $i=0;
        while ($products->have_posts()) : $products->the_post();
                $autor = get_the_author();
                if($i % 2 ==0) ?>
                                    <h3><?php the_title();?></h3>

<?php  if ($i % 2 != 0)
$i++;
endwhile;endif;?>