Suporte » Ajustando o WordPress » Condicao (if) dentro de uma pagina

  • Pessoal,
    Estou modificando um código mas não estou achando a solução para um item. Eu gostaria de modificar uma instância de acordo com a mudança de uma postagem, mas não aparece o código que coloquei de dentro do if:

    <?php global $wp_query;
    ob_start(); ?>
    
    <?php if( have_posts()):?>
    <div class="wrapper dark features mb20">
    		<?php while( have_posts() ): the_post();
    				$meta = get_post_meta( get_the_id(), 'sh_services_option', true );//printr($meta);
    		?>
    		<div class="column4">
    			<div class="feature-box">
    				<div class="feat-text">
    					<h4><?php the_title();?></h4>
    					<p>
    						<?php echo character_limiter( get_the_excerpt(), 180 ); ?>
    						<?php //echo $this->excerpt(get_the_excerpt(), 180); ?>
    					</p>
    				</div>
    
    <?php if (is_single( '21' )  ) { ?> <strong> /*Condicao para aparecer na postage */</strong>			
    
    <i class="fa <?php echo sh_set($meta, 'fontawesome');?>"></i>
    
    <?php  }?>
    
    			</div>
    		</div>
            <?php endwhile; ?>
    
    		<div class="clear">
    		</div>
    	</div>
    
    <?php endif; 
    
    $output = ob_get_contents();
    ob_end_clean(); ?>

    o link da postagem é esse: http://localhost/delineare/service/architecture-design/ e o id é 21

    Grato
    Glauco

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Moderador Leo Baiano

    (@leobaiano)

    Quando for publicar código utilize aspas investidas entre ele.

    Esse código é do arquivo single.php?

    Porque está chamando a global $wp_query; e para que esse esquema de guardar o buffer com ob_start(); e $output = ob_get_contents(); ob_end_clean();? Se não souber responder a isso apaga essas coisas, me parecem inúteis.

    Experimenta retirar as aspas simples entre o 21, ficando assim: if (is_single( 21 ) ) {.

    Antes do if coloca assim: echo 'O id dessa página é: ' . get_the_ID(); e veja se vai imprimir 21.

    Dentro do if, porém antes da tag <i> escreve teste e veja se a palavra teste aparece.

    Por fim, está entrando no while e mostrando o resto do HTML, só o que está dentro deste if que não aparece né?

    Bom, isso é só inicio dos testes, me responde e vamos seguindo até encontrar o problema.

    Criador do tópico glaucomerlim

    (@glaucomerlim)

    Olá Leo Baiano,

    Obrigado pela ajuda! Bom o arquivo ele não é um single.php, eu utilizei essa sintaxe pois quando dentro do theme possui o index.php e o single.php e quando clico para entrar dentro da postagem ele remete ao single.

    Retirei o global $wp_query; e ob_start(); e $output = ob_get_contents(); ob_end_clean();. eles vieram junto com theme, não inserei eles.

    quando coloquei <?php echo get_the_ID(); ?> apareceu 21, mas o if colocando ’21’ ou somente 21 não funcionou.

    O while é porque ele pega as postagens do ‘sh_services_option’. o que quero fazer é se a postagem fosse o id 21 mostrasse a tag que está dentro do if.

    Obrigado
    Glauco

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Condicao (if) dentro de uma pagina’ está fechado para novas respostas.