Suporte » Temas » Como ocultar DIV sem imagem usando Php

  • Resolvido alucio

    (@alucio)


    Caros,

    Boa tarde. O tema que utilizo usa a imagem destacada dos posts como miniatura na Home do site (www.festivalpopulardeteatro.com). No entanto, nem todos os posts do meu site usam imagem destacada e, nesses casos, a Home fica com um espaço em branco no lugar da imagem.
    Gostaria que, nos posts onde não há imagem destacada a <div> da miniatura fosse ocultada da Home, sendo ocupada pelo texto (noutras palavras, se houver imagem a <div> é postada, se não, a <div> é ocultada). É possível?

    Abaixo, segue código da <div> que chama as imagens.

    <div class="col-sm-6 post-image">
    			<?php
    			$thumb = get_post_thumbnail_id();
    			$img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
    			$image = aq_resize( $img_url, 720, 480, true ); //resize & crop the image
    		?>
    
    		<?php if($image) : ?>
    		<a href="<?php the_permalink(); ?>"> <img class="img-responsive" src="<?php echo $image ?>"/></a>
    		<?php endif; ?>	
    
    	</div>

    Espero ter sido claro. Desde já, agradeço a colaboração dos estimados colegas.

    Abraços,

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Tenta substituir esse código por isso:

    <?php
    			$thumb = get_post_thumbnail_id();
    			$img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
    			$image = aq_resize( $img_url, 720, 480, true ); //resize & crop the image
    		?>
    
    		<?php if($image) : ?>
                    <div class="col-sm-6 post-image">
    		<a href="<?php the_permalink(); ?>"> <img class="img-responsive" src="<?php echo $image ?>"/></a>
    	        </div>
    		<?php endif; ?>

    Só coloca a DIV se $image existir.

    Olá, Diana!

    Obrigado pela ajuda. Funcionou em parte: as DIVS dos posts sem imagem realmente foram ocultadas com o seu código (www.festivalpopulardeteatro.com).
    No entanto, preciso que o texto dessas postagens ocupem toda a largura da coluna principal do site. Simplificando, seria esse o raciocínio:
    Se existir imagem, coloca a DIV para exibir a miniatura (até aí foi resolvido) senão, o parágrafo ocupa toda a área horizontal da coluna (algo em torno de 750px).

    A intenção é que fique como destacado nessa imagem em vermelho.

    Segue o trecho da página “content.php” para auxiliar na ajuda:

    <?php
    			$thumb = get_post_thumbnail_id();
    			$img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
    			$image = aq_resize( $img_url, 720, 480, true ); //resize & crop the image
    		?>
    
    		<?php if($image) : ?>
                    <div class="col-sm-6 post-image">
    		<a href="<?php the_permalink(); ?>"> <img class="img-responsive" src="<?php echo $image ?>"/></a>
    	        </div>
    		<?php endif; ?>
    
    	<div class="entry-summary col-sm-6">
    		<?php the_excerpt();?>
    		<button class="btn  pull-right readmore"> <a href="<?php the_permalink(); ?>"> Leia Mais </a> </button>
    	</div><!-- .entry-summary -->
    
        <div class="clearfix"></div>

    Novamente, muito grato pela atenção.

    Moderador Rafael Funchal

    (@rafaelfunchal)

    Um pouquinho de PHP e conhecer o grid do Bootstrap ajudam bastante.

    <?php
    	$thumb		= get_post_thumbnail_id();
    	$img_url	= wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
    	$image		= aq_resize( $img_url, 720, 480, true ); //resize & crop the image
    
    	if( $image ) : ?>
    		<div class="col-sm-6 post-image">
    			<a href="<?php the_permalink(); ?>"> <img class="img-responsive" src="<?php echo $image ?>"/></a>
    		</div>
    
    		<div class="entry-summary col-sm-6">
    			<?php the_excerpt();?>
    			<button class="btn  pull-right readmore"> <a href="<?php the_permalink(); ?>"> Leia Mais </a> </button>
    		</div><!-- .entry-summary -->
    	<?php else : ?>
    
    		<div class="entry-summary col-sm-12">
    			<?php the_excerpt();?>
    			<button class="btn  pull-right readmore"> <a href="<?php the_permalink(); ?>"> Leia Mais </a> </button>
    		</div><!-- .entry-summary -->
    
    	<?php endif; ?>
    
    	<div class="clearfix"></div>

    Caro Rafael,

    Obrigado pela ajuda. O código atendeu perfeitamente à minha necessidade. Tentei resolver o problema usando CSS, mas a solução que você apresentou é bem melhor. Extendo meus agradecimentos à Diana pela colaboração.

    Muito grato,
    A. Lúcio

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Como ocultar DIV sem imagem usando Php’ está fechado para novas respostas.