it-swarm-ru.tech

Отображение почтовых вложений в верхней части файла 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');

для большого изображения ... замените "большой" определением размера, которое вы хотите, или массивом width, height.

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