2015-07-07 3 views
1

Я пытаюсь использовать meta_query на странице продукта WooCommerce.Meta_query in WooCommerce

Это код, я использую:

<?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

Что вы пытаетесь сделать? Каковы отношения, которые вы пытаетесь запросить? – helgatheviking

ответ

0

Вы используете get_the_ID(), чтобы получить идентификатор автора в аргументах meta_query.

get_the_ID() - получит идентификатор сообщения, а не идентификатор автора.

Чтобы получить все сообщения authок ид вашего арг должен выглядеть следующим образом:

$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;?> 
Смежные вопросы