【发布时间】:2016-08-12 04:30:24
【问题描述】:
我在 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。
【问题讨论】:
-
试试
get_post_meta():<?php echo get_post_meta($post->ID, 'video_artist', true); ?>。 -
你尝试过 $posts 变量上的 var_dump 吗?此外,如果您进入数据库,您可能需要仔细检查实际的元值(这将是完全确认正确的字段名称是 video_artist 的最佳方法。我会这样做的方法是获取您的帖子 ID,去进入MySQL(或phpMyAdmin)并尝试“SELECT * FROM wp_postmeta WHERE post_id = '{YOUR_ID}'”,它将输出该帖子的所有元字段。您可以100%确认您是否应该看到一个值以及是否元键是正确的。这应该让你开始。
-
只是做了一个 var-dump,根本没有提到 video_artist 字段。 @米勒媒体
-
也许没有名称为
video_artist的自定义字段。添加简单检查:<?php if (get_field('video_artist')) the_field('video_artist'); ?>。 Here 是详细信息。 -
一张支票只打印出每个帖子的“数组”一词。
标签: php wordpress advanced-custom-fields