在单页帖子中显示基于当前ACF字段名称的相关帖子(循环内循环)

时间:2014-09-19 作者:Xerxes

我有一个页面显示我当前的帖子。在帖子循环中,我想在其中显示另一个循环,其中显示了其他3篇按标题排列的相关帖子,它们与字段名“category”中的当前帖子共享相同的文本。

这是我目前拥有的代码示例。我让循环中的循环工作,但它仍然没有显示相关的帖子。

<!-- View Work -->
<section class="work-single">
<?php if (have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?>

  <div class="row">
    <div class="medium-12 columns">
      <!-- Work Title -->
      <div class="intro">
        <h1 class="main-title"><?php echo get_the_title(); ?></h1>
      </div>
    </div>
  </div>

  <div class="work-show">
    <div class="row">

      <!-- Slide Show Image -->
      <div class="medium-12 columns">
        <img src="<?php the_field(\'large_image\'); ?>" alt=""> 
      </div>

      <!-- Description -->
      <div class="medium-8 columns">
        <?php the_field(\'description\'); ?>
      </div>

      <!-- Information -->
      <div class="medium-4 columns">

        <ul class="side-info">
          <li class="client"><h4><?php the_field(\'client\'); ?></h4></li>
          <li class="date"><?php the_field(\'date\'); ?></li>
          <li class="category"><?php the_field(\'category\'); ?></li>
          <li class="leader"><?php the_field(\'leader\'); ?></li>

        </ul>

        <!-- Related Posts Loop -->

        <ul>
          <li>SIMILAR CASE STUDIES</li>
          <?php 
            // args
            $args = array(
              \'post_type\'   => \'case-studies\',
              \'posts_per_page\'  => 3,
              \'meta_key\'    => \'category\',
              \'orderby\'   => \'meta_value\',
              \'order\'     => \'rand\'
            );

            $theposts = get_posts( $args );
            foreach($theposts as $post) :
            setup_postdata($post);
            ?>
            <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </li>
            <?php
            endforeach;
            wp_reset_postdata();
          ?>
        </ul>

      </div>

    </div>
  </div>

<?php endwhile; else: ?>
  <p>Sorry, no posts matched your criteria.</p>
<?php endif; ?>

1 个回复
SO网友:Steven Jones

查询中没有meta\\u值。

从您的代码中,我无法判断您正在使用元数据做什么,但您应该能够做到这一点:

// Store this BEFORE you go into the second loop.
$category = get_field(\'category\');

// The arguments for the second loop
\'post_type\'   => \'case-studies\',
\'showposts\'  => 3,
\'meta_key\'    => \'category\',
\'meta_value\'   => $category,
\'orderby\'     => \'rand\'
因此,您要做的是匹配类别元键的值。

理想情况下,您可以使用分类法来完成上述操作—这就是它们的作用所在。

http://codex.wordpress.org/Function_Reference/register_taxonomy

结束

相关推荐

单个帖子模板上的POSTS_NAV_LINK

我有一个帖子类型叫做journal 在single-journal.php 模板我正在查询journal 类似这样的帖子:<?php query_posts( array( \'posts_per_page\' => 4, \'post_type\' => \'journal\', \'paged\' => ( get_query_var(\'page\') ? get_query_var(\'page\') : 1 ),&#x