我正在尝试使用ACF设置自定义字段featured_image
,并且无法在我的PHP代码中访问它。首先是确认将字段添加到最新帖子的屏幕截图,然后是php代码。
我是WordPress的新手,所以我希望这是一个琐碎的误会。
我运行了var_dump( get_post_meta(get_the_ID()) );
,它没有显示'featured_image'字段的存在。我还创建了一个text
自定义字段,该字段也没有显示。
<?php $my_query = new WP_Query( 'cat=2&posts_per_page=3' );
while ( $my_query->have_posts() ) : $my_query->the_post();
// some variable code
?>
<div class="section-info background3">
<div class="section-details">
// some irrelevant html
<?php
$image = get_field('featured_image');
var_dump( $image );
echo $image;
$featured_image = the_field('featured_image');
var_dump( $featured_image );
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if( $image ) {
echo wp_get_attachment_image( $image, $size );
}
?>
</div>
</div>
<?php endwhile; ?>
哪个输出
bool(false)
代表var_dump( $image );
NULL
for var_dump( $featured_image );
任何帮助将不胜感激。预先感谢。
答案 0 :(得分:1)
在这种情况下,我要采用的第一个策略是确认数据是否存在于数据库级别。
针对您的数据库运行查询:
SELECT * FROM `wp_postmeta` WHERE `post_id` = YOUR_POST_ID AND `meta_key` LIKE '%featured_image%'
如果您可以确认数据在那里,那么接下来要做的就是确保将正确的post_id传递给get_field。
由于您要创建自定义WP_Query
,并且get_field
通常从全局$post
变量中推断出ID,因此总会有混淆的可能。 get_field
可以选择使用第二个$post_id
参数。
如果您可以在自定义循环中转储get_the_ID()
的内容,并确认其与featured_image
字段中包含数据的帖子相匹配,则以
<?php
$my_query = new WP_Query('cat=2&posts_per_page=3');
while ($my_query->have_posts() ) :
$my_query->the_post();
var_dump(get_the_ID()); // <-- this should match the ID of the post w/ the featured_image
$image = get_field('featured_image', get_the_ID());
var_dump($image);
endwhile;
wp_reset_postdata(); // always good practice to reset the globals after a custom q!