WordPress - 无法为上一篇文章和下一篇文章输出图像(从自定义字段)



我正在一个投资组合网站上工作。每当点击公文包文章时,用户就会进入一个页面,显示该文章的详细信息(即更多照片和信息)。还将有上一个和下一个导航链接,以获取其他部分。但是,我希望上一个和下一个导航链接是下一个片段的缩略图(自定义字段为thumbnail_photo)。这就是我目前所拥有的:

<?php
  $previous_post = get_previous_post();
  $next_post = get_next_post();
  $prev_value = get_post_meta( $previous_post->ID, 'materials', $single = true);
  $next_value = get_post_meta( $next_post->ID, 'thumbnail_photo', $single = true);
?>
       <p><?php echo $prev_value; ?></p>
       <p><?php echo $next_value; ?></p>

我在$prev_value的调用中使用了"materials",因为"material"是另一个自定义字段。我只是想看看它是否真的有效。它输出的材质很好,但只输出thumbnail_photo的ID号。我无法让它引用文件名,这样我就可以输出实际的图像。

我使用的是高级自定义字段插件,所以每个图像都存储为一个图像对象。这就是我通常输出缩略图的方式:

<?php
  $image = get_field('thumbnail_photo);
  echo $image[sizes]["thumbnail"];  // thumbnail is a reference to wordpress' thumbnail media size
?>

配置ACF输入字段时,请确保将返回值设置为图像对象,而不是更改后的映像ID;或者,如果您已经更改,则必须更新您试图获取的一个或多个帖子。因为,如果你将字段返回值设置为图像ID,创建了帖子,现在你想更改它们的值,你必须修改所有帖子,因为每个post_meta都包含图像的ID。

ACF网站上有一个教程,介绍如何将值转化为图像:

使用ID

<?php
    wp_get_attachment_image( $next_value, 'thumbnail' );
?>

另一个例子对于ID,但这次您必须创建图像HTML,该函数返回一个包含url、宽度和高度的数组

<?php
$image = wp_get_attachment_image_src( $next_value, 'thumbnail' );
// url = $image[0];
// width = $image[1];
// height = $image[2];
?>
<img src="<?php echo $image[0]; ?>" />

您可以检查返回的值,然后写入图像,例如:

<?php
if( is_int( $next_value ) ) {
    wp_get_attachment_image( $next_value, 'thumbnail');
} elseif ( is_object( $next_value ) ) {
    echo $next_value['sizes']['thumbnail'];
} else { ?>
   <img src="<?php the_field('field_name'); ?>" alt="" />
<?php } ?>

我没有测试它,但我认为它运行良好。

我希望这能有所帮助,并为糟糕的英语感到抱歉

相关内容

  • 没有找到相关文章

最新更新