【问题标题】:ACF custom post feed by custom taxonomy自定义分类法的 ACF 自定义帖子提要
【发布时间】:2015-10-09 02:04:44
【问题描述】:

我正在使用带有自定义帖子类型 UI 插件和 ACF 插件的 wordpress。 尝试通过自定义自定义分类法构建具有多个自定义帖子类型提要的“单一”模板。使用此代码,通过一些变化来找出我做错了什么。

连续两段这样的代码

<?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 是一个分类字段。使用上面显示的这段代码,它只显示了所有“产品”帖子。我也尝试过使用带有分类 slug 的文本字段。如果我没有使用第一个 if 语句 (&lt;?php if( get_field(‘collectiona’) ): ?&gt;),并且如果该语句存在,那么它显示第一个 feed 非常好 - 会发生同样的事情。显示所有“产品”。然而,即使第一个 feed 显示良好,第二个 feed 仍然显示所有“产品”。不管分类学蛞蝓怎么说。

我正在尝试以这种方式构建它,管理员可以选择下拉分类法。带有分类 slug 的文本字段只是一个示例。 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(); ?>

【问题讨论】:

  • var_dump( get_field( 'collectiona' ) );的值是多少
  • bool(false) ,但在帖子编辑器中选择了值
  • 那么您不是在单个页面上使用此功能,而是在脱离上下文使用它,这就是您没有获得任何价值的原因。或者您在单个模板的某处使用query_posts,这传递错误信息
  • 模板中没有query_posts。并且不确定我是否关注单页。它在一个模板中用于单个自定义帖子。顺便说一句,这是它的完整 php 模板jsfiddle.net/pudfbxhv
  • 请在您的问题中添加您的代码。你的小提琴没用,因为它在 Wordpress 上不起作用。我说的是你的单个帖子页面,single.phpsingle-{$post_type}.php

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


【解决方案1】:

嗯,这可能是一种变态,但它对我有用。

$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(); ?> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2021-01-09
    相关资源
    最近更新 更多