it-swarm-es.com

Visualización de adjuntos de publicaciones en la parte superior de single.php

Estoy usando la última versión de WP y me gustaría mostrar la primera imagen adjunta a la publicación en la parte superior del contenido de la publicación. ¿Qué código debo agregar a single.php para que esto suceda?

1
Scott B

Los archivos adjuntos se consideran hijos de la publicación a la que se adjuntan, por lo que esto debería funcionar:

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

para una imagen grande ... reemplace "grande" con la definición de tamaño que desee o un ancho, matriz de altura.

2
goldenapples

Función para obtener la primera imagen adjunta a una publicación

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

Ahora debemos indicar a WordPress dónde debe mostrar esta imagen

Añade esta línea donde quieras mostrar la imagen:

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

El Gotcha para usar este enfoque

Si agrega una imagen al editor de publicación, se mostrará 2 veces.

Un caso para usar este enfoque

Esto funciona muy bien cuando quiere usar miniaturas (imagen destacada) en las páginas de su blog, luego muestra una versión más grande de la imagen en single.php y no quiere tener que configurar una imagen destacada y luego insertarla manualmente. Con este método, simplemente configura la imagen destacada para adjuntarla a la publicación y terminar con ella.

1
Chris_O

No estoy seguro de cómo limitarlo al primer archivo adjunto (y cómo limitarlo a los archivos adjuntos de imagen), pero este debería ser un buen punto de partida. De El Códice :

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