it-swarm-vi.tech

Hiển thị (các) tệp đính kèm ở đầu trang.php.

Tôi đang sử dụng bản dựng mới nhất của WP và muốn hiển thị hình ảnh đầu tiên được đính kèm vào bài đăng ở đầu nội dung bài đăng. Tôi phải thêm mã nào vào single.php để thực hiện điều này?

1
Scott B

Tệp đính kèm được coi là con của bài đăng mà chúng được đính kèm, vì vậy, tệp này sẽ hoạt động:

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

đối với hình ảnh lớn ... thay thế "lớn" bằng định nghĩa kích thước bạn muốn hoặc mảng chiều rộng, chiều cao.

2
goldenapples

Chức năng lấy hình ảnh đầu tiên được đính kèm vào bài đăng

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;
}
}
}
}

Bây giờ chúng tôi cần cho WordPress biết nơi hiển thị hình ảnh này

Thêm dòng này vào nơi bạn muốn hiển thị hình ảnh:

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

Gotcha để sử dụng aproach này

Nếu bạn thêm một hình ảnh vào trình chỉnh sửa bài đăng, nó sẽ hiển thị 2 lần.

Một trường hợp sử dụng phương pháp này

Điều này hoạt động rất tốt khi bạn muốn sử dụng hình thu nhỏ (hình ảnh nổi bật) trên các trang blog của mình sau đó hiển thị phiên bản hình ảnh lớn hơn trong single.php và không muốn phải đặt hình ảnh nổi bật sau đó chèn thủ công. Với phương pháp này, bạn chỉ cần đặt hình ảnh đặc trưng để đính kèm nó vào bài đăng và được thực hiện với nó.

1
Chris_O

Tôi không chắc chắn làm thế nào để giới hạn nó ở tệp đính kèm đầu tiên (và cách giới hạn ở tệp đính kèm hình ảnh), nhưng đây sẽ là điểm khởi đầu tốt. Từ Codex :

<?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