![](/img/trans.png)
[英]WordPress: Advanced Custom Fields - Field has “#” character, How To Call It To Display?
[英]Wordpress Advanced Custom Fields display field not working in loop
我在Wordpress中使用“高级自定义字段”。 我有一个名为VIDEOS的自定义帖子类型,它具有两个字段-video_link和video_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.