2015-07-20 122 views
1

我使用WordPress自定义张贴类型UI插件和ACF插件。 尝试通过自定义自定义分类法构建包含多个自定义帖子类型的“单个”模板。使用这些代码,通过一些变化来弄清楚我做错了什么。ACF通过自定义分类法自定义张贴源

得到2件的这样的代码在一排

<?php if(get_field('collectiona')): 
    $argsc = array(
     'post_type' => 'products', 
     'product-collections' => get_field('collectiona'), 
    ); 
    $prods2 = new WP_Query($argsc); 
    if($prods2->have_posts()) { 
     while($prods2->have_posts()) { 
     $prods2->the_post(); 
     ?> 
     Whatever post code 
     <?php 
     } 
    } 
    else { 
     echo ''; 
    } 
    ?> 
<?php endif; ?> 

collectiona是一个分类字段。使用上面显示的这段代码,它只显示了那里的所有“产品”帖子。我也尝试过使用分类学slu text的文本字段。它显示第一个馈送完全正确,如果我不使用第一个if语句(<?php if(get_field(‘collectiona’)): ?>),并且该语句存在 - 同样的事情发生。显示所有“产品”。然而,即使第一饲料表现良好,第二饲料仍然显示出所有“产品”。尽管什么分类学slu says说。

我试图建立它的方式,管理员可以选择一个下拉分类。带有分类slu Text的文本字段就是一个例子。 p.s. 我使用术语对象 完整的模板代码在这里jsfiddle.net/pudfbxhv。我知道的jsfiddle是无用的WP模板,但是这是一个相当大的一段代码

编辑

下面是更新后的代码

<?php 
      $taxterms = get_field("collectiona"); ?>     

       <?php 
       $args = array(
        'post_type' => 'products', 
        'tax_query' => array(
         array(
          'taxonomy' => 'product-collections', 
          'field' => 'id', 
          'terms' => $taxterm->term_id 
         ) 
        ) 
       ); 

       $myquery = new WP_Query($args); 
       if($myquery->have_posts()) : ?> 

        <ul> 
         <?php while ($myquery->have_posts()) : $myquery->the_post(); ?> 
          <li> <a href="<?php the_permalink(); ?>"><img src="<?php the_field('prod_featured_image'); ?>" onmouseover="this.src='<?php the_field('prod_hover_featured_image'); ?>'" onmouseout="this.src='<?php the_field('prod_featured_image'); ?>'" /></a> 
                  <h2><?php the_field('prod_subtitle'); ?></h2> 
                  <p>$<?php the_field('prod_price'); ?></p> 
                  </li> 
         <?php endwhile; ?> 
        </ul> 
       <?php endif; ?> 
       <?php wp_reset_query(); ?> 
+0

后是什么的var_dump'值(get_field( 'collectiona'));' –

+0

布尔(假),但价值在帖子编辑器中被选中 – archibib

+0

然后,你并没有在单个页面上使用这个函数,你正在使用它的背景下,这就是为什么你没有价值。或者您在单个模板上的某处使用'query_posts',**将**传递错误信息 –

回答

0

嗯,这可能是一个变态,但它的工作为了我。

$termss = get_field('collectiona'); 
    $slll = $termss->slug; 
    $args = array(
     'post_type' => 'products', 
     'product-collections' => $slll, 
    ); 
    $lineblocks = new WP_Query($args); 
    if($lineblocks->have_posts()) { 
     while($lineblocks->have_posts()) { 
     $lineblocks->the_post(); 

而且,你要记住把下面的代码每个数组

<?php wp_reset_query(); ?> 
相关问题