Suporte » Outros assuntos » pegar os 2 primeiros anexos(imagens) do post

  • Resolvido tchemevski

    (@tchemevski)


    Boa tarde!
    estou a semanas tentando e tentando e até agora não consegui

    Dentro do query post tem isso

    <?php
    		$args = array(
    		'post_type' => 'attachment',
    		'numberposts' => -1,
    		'post_status' => null,
    		'post_parent' => $post->ID,
    		'size'=>'thumbnail'
    		 );
    		  $attachments = get_posts( $args );
    		     if ( $attachments ) {
    		        foreach ( $attachments as $key => $value ) {
           	//$thumbimg = wp_get_attachment_link( $value->ID, 'medium', true );//aqui ta o href e img
    		        //$anexo_id = get_post_thumbnail_id();
    		        $anexo_url = wp_get_attachment_image_src($value->ID,'medium');
    			    ?>
    			<img alt="<?php the_title();?>" src="<?php echo $anexo_url[0];//ESSA FUNCIONA?>"/>
    					<div class="cover">
    						<?php $anexo_id = wp_get_attachment_image_src($value->ID,'medium')?>
    						<img alt="" src="<?php echo $img_do_post[1]->ID;?>"/>
    					</div>
    					<?php
    					          }
    				     }
    					?>

    essa parte funciona bem echo $anexo_url[0] e pega todas as imagens
    mas queria pegar só duas. pois preciso colocar uma em uma tag img e outra em outra tag img

    Alguém saberia me ajudar?

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Criador do tópico tchemevski

    (@tchemevski)

    Acho que resolvi!
    pra teste dei um
    echo " key- ".$key." ".wp_get_attachment_image( $attachment->ID, 'full' )
    e com o $key eu sabia qual volta estava cada anexo, então criei um IF testando se fosse $key == 0 dava echo wp_get_attachment_image( $attachment->ID, ‘full’ ) junto com todos estilos que eu quisesse ai fiz o mesmo para o $key==1

    foreach ( $attachments as $key=> $attachment ) {
    
            	if($key==0){
            		//echo " key- ".$key." ".wp_get_attachment_image( $attachment->ID, 'full' )."post ID".$post->ID;
            		echo wp_get_attachment_image( $attachment->ID, 'produto-thumb' );//isso ja imprime o img src alt...
    
               	}
    
               if($key==1){
               		//echo " key- ".$key." ".wp_get_attachment_image( $attachment->ID, 'full' )."post ID".$post->ID;
               		echo "<div class=\"cover\">";
    					echo wp_get_attachment_image( $attachment->ID, 'produto-thumb' );		
    
    				echo "</div>";
    
               	//echo apply_filters( 'the_title', $attachment->post_title );
    
           		}

    Caso alguém tenha solução melhor, diga ai!

    $args = array(
    	'post_type' => 'attachment',
    	'post_mime_type' => 'image',// Se quiser pegar algo alem das imagens mude isto
    	'post_parent' => $id,// ID do post
    	'posts_per_page' => 2,
    	'orderby' => 'menu_order',
    	'order' => 'ASC'
    );
    
    $consulta = &get_children($args);

    E no HTML você poderia fazer assim

    <?php foreach( $consulta as $image ) : ?>
    	<li class=""><?php echo wp_get_attachment_image($images->ID); ?></li>
    <?php endforeach; ?>

    Essa é a forma que eu uso para criar galeria com os attchaments dos posts via shortcode.
    https://codex.wordpress.org/Function_Reference/get_children

    Boa sorte

    Criador do tópico tchemevski

    (@tchemevski)

    E no HTML você poderia fazer assim

    <?php foreach( $consulta as $image ) : ?>
    	<li class=""><?php echo wp_get_attachment_image($images->ID); ?></li>
    <?php endforeach; ?>

    Essa é a forma que eu uso para criar galeria com os attchaments dos posts via shortcode.
    https://codex.wordpress.org/Function_Reference/get_children

    Boa sorte

    Evandro Teixeira
    Obrigado pela dica, mas precisava colocar só as 2 primeiras imagens, onde cada um teria que ir em um local diferente com um estilo css diferente. Dessa forma que tu indicou não sei como fazer isso.
    Mas o cod fica ai para uso futuro.
    Obrigado.

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • O tópico ‘pegar os 2 primeiros anexos(imagens) do post’ está fechado para novas respostas.