列出不同自定义帖子类型的自定义字段

时间:2014-01-13 13:59:26

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

我有两种不同的自定义帖子类型:“电影”和“按”具有不同的自定义字段。 现在我想在single.php中显示两个自定义字段。

home.php:

...
$query = array(
    'post_type' => 'movies',
    'posts_per_page' => 3,
  );
  $loop = new WP_Query( $query );
  if ( $loop->have_posts() ) :
   while ( $loop->have_posts() ) :  $loop->the_post(); ?>
     <div class="movie_cover">
       <a href="<?php the_permalink() ?>"><img src="<?php the_field('cover'); ?>" title="<?php echo get_the_title() ?>" /></a>
     </div>
...

single.php中:

get_header(); ?>
 <?php while ( have_posts() ) : the_post(); ?>

  <?php get_template_part( 'single', 'film' ); ?>

 <?php endwhile; // end of the loop. ?>
<?php get_footer(); ?>

单film.php:

...
<img src="<?php the_field('cover'); ?>" title="<?php echo get_the_title() ?>" />
...

字段“封面”来自“电影”,但现在我想从“按”列出字段“发布”。 我需要第二个循环吗?

1 个答案:

答案 0 :(得分:0)

如果您要添加movie_id自定义字段,请将其设置为电影的ID 然后你就可以在single-film.php里面做点什么了

query_posts('meta_key=movie_id&meta_value=' . get_the_ID());

并为评论做另一个循环

while have_posts() ...

还有很多额外的东西,但这应该让你进入 正确的方向。

我会考虑使用get_posts而不是query_posts来覆盖wordpress的主查询循环,但是你必须自己做手动循环:

 $posts = get_posts('meta_key=movie_id&meta_value=' . get_the_ID());

foreach ($posts as $p) {
echo $p->post_title; 
...
}