it-swarm.cn

在single.php的顶部显示帖子附件

我正在使用WP的最新版本,并希望在帖子内容的顶部显示附加到帖子的第一张图片。为了实现这一目标,我需要添加哪些代码才能添加到single.php中?

1
Scott B

附件被视为他们所附的帖子的子女,因此这应该有效:

$images=get_children( array('post_parent'=>$post->ID,
                            'post_mime_type'=>'image',
                             'numberposts'=>1));
echo wp_get_attachment_image($images[0]->ID, 'large');

对于大图像...用你想要的尺寸定义或宽度,高度数组替换“大”。

2
goldenapples

将第一张图片附加到帖子的功能

function the_image($size = 'medium' , $class = ”){
global $post;

//setup the attachment array
$att_array = array(
'post_parent' => $post->ID,
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order_by' => 'menu_order'
);

//get the post attachments
$attachments = get_children($att_array);

//make sure there are attachments
if (is_array($attachments)){
//loop through them
foreach($attachments as $att){
//find the one we want based on its characteristics
if ( $att->menu_order == 0){
$image_src_array = wp_get_attachment_image_src($att->ID, $size);

//get url – 1 and 2 are the x and y dimensions
$url = $image_src_array[0];
$caption = $att->post_excerpt;
$image_html = '<img src="%s" alt="%s" />';

//combine the data
$html = sprintf($image_html,$url,$caption,$class);

//echo the result
echo $html;
}
}
}
}

现在我们需要告诉WordPress在哪里显示这个图像

在要显示图像的位置添加此行:

<?php the_image('medium','post-image'); ?>

使用此方法的问题

如果将图像添加到帖子编辑器,它将显示2次。

使用这种方法的案例

当您想在博客页面上使用缩略图(特色图像)然后在single.php中显示更大版本的图像并且不想设置特色图像然后手动插入它时,这非常有用。使用此方法,您只需将特色图像设置为将其附加到帖子并完成即可。

1
Chris_O

我不确定如何将其限制为第一个附件(以及如何将其限制为图像附件),但这应该是一个很好的起点。从 食典

<?php

$args = array(
    'post_type' => 'attachment',
    'numberposts' => -1,
    'post_status' => null,
    'post_parent' => $post->ID
    ); 
$attachments = get_posts($args);
if ($attachments) {
    foreach ($attachments as $attachment) {
        echo apply_filters('the_title', $attachment->post_title);
        the_attachment_link($attachment->ID, false);
    }
}

?>
0
Travis Northcutt