繁体   English   中英

WordPress高级自定义字段显示字段无法循环工作

[英]Wordpress Advanced Custom Fields display field not working in loop

我在Wordpress中使用“高级自定义字段”。 我有一个名为VIDEOS的自定义帖子类型,它具有两个字段-video_linkvideo_artist

我可以调用并输出video_link字段,但似乎无法使用以下代码显示“ video_artist ”字段...

<?php 
   $posts = get_posts(array(
   'post_type'          => 'videos',
   'posts_per_page'     => -1
   )
   ));                  
   if( $posts ): ?>
<?php foreach( $posts as $post ): 
   setup_postdata( $post )                  
   ?>
<?php echo wp_oembed_get( get_field( 'video_link' ) ); ?>
<?php the_title(); ?>
<?php the_field('video_artist'); ?>
</div>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>

实际上,这条线...

<?php the_field('video_artist'); ?>

...中断网站,显示后一无所有。 没有任何形式的html。

它几乎与您刚刚测试过的代码相同,并且工作正常

就像@admcfadn所说的,您在wordpress循环中要注意,因此您需要添加帖子ID作为the_field的参数

$posts = get_posts(array(
    'post_type'          => 'videos',
    'posts_per_page'     => -1
));       


if( $posts ): 

    foreach( $posts as $post ): 
        setup_postdata( $post );               


        the_title(); 

        the_field('video_link', $post->ID);

        the_field('video_artist', $post->ID);

     endforeach;
     wp_reset_postdata();

endif; 

如果您想在the_field中使用不带arg的循环,则将如下所示:

$options = array(
    'post_type'          => 'videos',
    'posts_per_page'     => -1
);

$query = new WP_Query( $options );

if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); 

    the_title(); 

    the_field('video_link');

    the_field('video_artist');

endwhile; endif;

ps:您不需要在每行上使用<?php ?>

$post->the_field('video_artist');

您使用的是get_posts,而不是wp_query,因此您可能需要通过$ post引用变量。

和/或使用以下方法进行故障排除:

the_field('video_artist', $post->ID); 

可能会得到你。

要么...

$baz = get_field( 'video_artist' ); echo $baz;

另外,看起来您在setup_postdata($ post)之后缺少分号,并且在get_posts之后有多余的右括号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM