我正在使用Wordpress插件Advanced Custom Fields
我正在查看自定义帖子类型的single.php页面。在页面底部,我想显示显示附带图像的下一个和上一个帖子链接。此图像值是ACF自定义字段。如何通过链接获取并显示下一个/上一个帖子图像?
目前我的破解代码显示了我正在查看的页面的图像:
<?php
$size = "medium";
$prevPost = get_previous_post(true);
$prevThumbnail = get_field('bg_image', $prevPost->ID);
$bgimage = wp_get_attachment_image_src( $prevThumbnail, $size );
?>
<img src="<?php echo $bgimage[0]; ?>" />
<?php previous_post_link( '<strong>%link</strong>' ); ?>
修改
根据@ d79的评论,我已经完成了$prevThumbnail
的vardump,所有返回的内容如下所示,这是什么意思?
int(1046)
编辑编辑
好的,所以我在自定义字段bg_image
上做了一个vardump,我得到了相同的数字:
int(1046)
但是,在打开wp_config中的调试后,我也收到以下错误:
Notice: Trying to get property of non-object in /Applications/MAMP/htdocs/bao-agency/wp-content/themes/bao/single-work.php on line 19
这是指这一行:
$prevThumbnail = get_field('bg_image', $prevPost->ID);
此bg_image
字段是设置为图像ID的图像字段,而不是高级自定义字段中的数组。
答案 0 :(得分:3)
通知错误意味着$prevPost
不是帖子对象,并且如果未设置全局$post
或者同一类别中没有先前帖子,则会发生这种情况,因此{{1失败并检索当前帖子的图像。
为避免您需要检查get_field('bg_image', $prevPost->ID)
是否为对象:
$prevPost
请注意,我还向<?php
global $post;
$prevPost = get_previous_post(true);
if( is_object($prevPost) ):
$prevThumbnail = get_field('bg_image', $prevPost->ID);
$bgimage = wp_get_attachment_image_src( $prevThumbnail, 'medium' );
?>
<?php if($bgimage): ?>
<img src="<?php echo $bgimage[0]; ?>" />
<?php endif; ?>
<?php previous_post_link( '<strong>%link</strong>', '%title', true ); ?>
<?php endif; ?>
添加了第三个参数true
,以检索上一篇文章的链接但属于同一类别。