自定义分类法的ACF自定义帖子提要

时间:2015-07-20 02:52:42

标签: php wordpress custom-post-type advanced-custom-fields

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

连续获得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是一个分类法字段。使用上面显示的代码片段,它只显示那里的所有“产品”帖子。我也尝试使用带分类标本的文本字段。如果我没有使用第一个if语句(<?php if( get_field(‘collectiona’) ): ?>),并且如果该语句存在 - 它会发生同样的事情,它显示第一个Feed非常好。显示所有“产品”。然而,即使第一次进料显示正常,第二次进料仍显示所有“产品”。尽管分类标本说什么。

我正在努力构建它,管理员可以选择下拉分类法。带有分类标本的文本字段就是一个例子。 附: 我使用术语对象 完整的模板代码在这里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(); ?>

1 个答案:

答案 0 :(得分: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(); ?>