我正在尝试在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模板上使用它?
答案 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;?>