我正在投资组合网站上工作。每当点击投资组合片段时,用户将被带到显示该片段的详细信息的页面(即更多照片和信息)。还将有上一个和下一个导航链接来获取其他部分。但是,我希望上一个和下一个导航链接是下一个片段的缩略图照片(自定义字段为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的调用中使用了'材料',因为'材料'是另一个自定义字段。我只是想看看它是否真的有效。它输出的材料很好,但它只输出thumbnail_photo的ID号。我无法引用文件名,以便输出实际图像。
我正在使用高级自定义字段插件,因此每个图像都存储为图像对象。所以这就是我通常输出缩略图的方式:
<?php
$image = get_field('thumbnail_photo);
echo $image[sizes]["thumbnail"]; // thumbnail is a reference to wordpress' thumbnail media size
?>
答案 0 :(得分:0)
配置ACF输入字段时,请确保将返回值设置为图像对象,而不是图像ID 更改此项,或者如果您已更改,则必须更新您尝试获取的帖子或帖子。因为,如果您将字段返回值设置为图像ID,则创建帖子,现在您想要更改其值,您必须修改所有帖子,因为每个post_meta都包含图像的ID。
在ACF website中有一个教程,您可以将这些值转换为图像:
使用ID
<?php
wp_get_attachment_image( $next_value, 'thumbnail' );
?>
另一个示例使用ID,但这次你必须创建图像HTML,该函数返回一个包含url,width和height的数组
<?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 } ?>
我没有测试它,但我认为它工作正常。
我希望这有帮助,对不好的英语抱歉