[英]Get an ACF custom field from an adjacent post
我正在使用Wordpress插件高级自定义字段
我正在查看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
,下面返回的全部内容是什么意思?
int(1046)
编辑编辑
好的,所以我对自定义字段bg_image
做了一次抄送,并得到了相同的数字:
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
字段是设置为Image ID的图像字段,而不是Advanced Custom Fields中的数组。
通知错误意味着$prevPost
不是发布对象,并且如果未设置全局$post
或同一类别中没有先前的发布,则可能发生,因此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; ?>
请注意,我还在previous_post_link
添加了第三个参数true
,以检索上一文章的链接,但属于同一类别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.