it-swarm.dev

Zobrazení přílohy příloh v horní části single.php

Používám nejnovější sestavení WP a chtěla bych zobrazit první obrázek připojený k příspěvku v horní části obsahu příspěvku. Jaký kód musím přidat do souboru single.php, aby se to stalo?

1
Scott B

Přílohy jsou považovány za děti příspěvku, ke kterému jsou připojeny, takže by to mělo fungovat:

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

pro velký obraz ... nahradit "velké" s definicí velikosti, kterou chcete, nebo šířka, výška pole.

2
goldenapples

Funkce pro získání prvního obrázku připojeného k příspěvku

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

Nyní musíme WordPressu říct, kde se má tento obrázek zobrazit

Přidejte tento řádek, kam chcete zobrazit obrázek:

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

Gotcha pro použití tohoto postupu

Pokud do editoru příspěvků přidáte obrázek, zobrazí se dvakrát.

Případ pro použití tohoto přístupu

To funguje skvěle, když chcete na svých stránkách blogu použít miniatury (doporučený obrázek) a poté zobrazit větší verzi obrázku v souboru single.php a nechcete nastavit zobrazený obrázek, poté jej ručně vložte. S touto metodou stačí nastavit zobrazený obrázek tak, aby byl připojen k příspěvku a byl s ním proveden.

1
Chris_O

Nejsem si jistý, jak ji omezit na první přílohu (a jak ji omezit na přílohy obrázků), ale to by mělo být dobrým výchozím bodem. Od Kodex :

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