Suporte » Ajustando o WordPress » Criar uma página com todos os posts listados

  • Pessoal, antes eu usava esse código

    <?php get_header(); ?>
    <?php include('includes/menu-de-categorias.php'); ?>
    <div id="corpo"><!--Início do Corpo-->
    	<div id="corpo-pagina"><!--Início do Corpo Postagem-->
    		<div id="page-pagina"><!--page pagina -->
    			<p><?php the_title(); ?></p>
                            <div>
    
    			<?php $debut = 0;?>
    			<?php while(have_posts()) : the_post(); ?>
    				<ul class="indice-geral">
    					<?php
    						$myposts = get_posts('numberposts=-1&offset=$debut&orderby=title&order=ASC&cat=-383,-1654'); 
    						foreach($myposts as $post) : ?>
    							<li>
    								<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>								
    							</li>
    						<?php endforeach; ?>
    				</ul>
    			<?php endwhile; ?>
                            </div>
    		</div><!--page pagina -->
    	</div><!--Fim do Corpo da Página-->
    </div><!--Fim do Corpo-->
    <?php get_footer(); ?>

    Agora, depois que atualizei, não sei por que não funciona mais. Alguém pode me ajudar?

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

    (@leobaiano)

    Esse código está em qual arquivo?

    Criador do tópico Welligton Sousa

    (@sousawelligton)

    page-indice-geral.php

    Criador do tópico Welligton Sousa

    (@sousawelligton)

    page-indice-geral.php

    Nele eu exibia uma lista em ordem alfabética de todos os posts ligados a categoria de id 1 e excluia duas categorias específicas.

    Funcionava de boas. Bastou eu atualizar o wordpress e não funciona mais.

    Moderador Leo Baiano

    (@leobaiano)

    Apague o trecho abaixo e substitua

    
    <?php while(have_posts()) : the_post(); ?>
    				<ul class="indice-geral">
    					<?php
    						$myposts = get_posts('numberposts=-1&offset=$debut&orderby=title&order=ASC&cat=-383,-1654'); 
    						foreach($myposts as $post) : ?>
    							<li>
    								<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>								
    							</li>
    						<?php endforeach; ?>
    				</ul>
    			<?php endwhile; ?>
    

    Substitua por

    
    $args = array (
    'posts_per_page' => -1,
    'offset' => $debut,
    'orderby' => 'title',
    'order' => 'ASC',
    'category__not_in' => array ( 383, 1654 )
            );
    $todos_os_posts = new WP_Query ( $args );
    if ( $todos_os_posts->have_posts() ) {
    echo '<ul>';
        while ( $todos_os_posts->have_posts() ) {
            $todos_os_posts->the_post();
    ?>
    <li>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>						
    </li>
    <?php
        }
        wp_reset_postdata();
    echo '</ul>';
    }
    
    • Esta resposta foi modificada 4 anos, 8 meses atrás por Leo Baiano. Razão: O código que Leo Baiano passou tinha um erro de sintaxe
    • Esta resposta foi modificada 4 anos, 8 meses atrás por Leo Baiano. Razão: Corrigindo erro de sintaxe no código
    Criador do tópico Welligton Sousa

    (@sousawelligton)

    Não deu certo. A página aparece em branco.

    Coloquei assim:

    <?php get_header(); ?>
    
    <?php include('includes/menu.php'); ?>
    
    	<div id="corpo-postagem"><!--Início do Corpo Postagem-->
    
    		<div id="page-pagina"><!--page pagina -->
    
    			<h1><?php the_title(); ?></h1></br>
    
    			<p>Utilize o ctrl + F para buscar a música desejada</p></br>
    
    			<div><!--Comeco da Listagem-->
    				<?php 
    					$args = array (
    					'posts_per_page' => -1,
    					'offset' => $debut,
    					'orderby' => 'title',
    					'order' => 'ASC',
    					'category__not_in' = array ( 383, 1654 )
    					);
    					
    					$todos_os_posts = new WP_Query ( $args );
    					
    					if ( $todos_os_posts->have_posts() ) {
    					echo '<ul>';
    						while ( $todos_os_posts->have_posts() ) {
    							$todos_os_posts->the_post();
    				?>
    					
    				<li>
    					<a href="<?php the_permalink(); ?>">
    						<?php the_title(); ?>
    					</a>						
    				</li>
    				<?php 
    					}
    					wp_reset_postda();
    					echo '</ul>';
    					}
    				?>
    				
    			</div><!--Fim da Listagem-->
    
    		</div><!--page pagina -->
    
    	</div><!--Fim Corpo Postagem-->
    
    <?php get_footer(); ?>

    Houve algum erro?

    Moderador Leo Baiano

    (@leobaiano)

    Nessa linha aqui: 'category__not_in' = array ( 383, 1654 ) faltou sinal de > depois do igual, coloca assim: 'category__not_in' => array ( 383, 1654 )

    Criador do tópico Welligton Sousa

    (@sousawelligton)

    O problema ainda continua. A página fica em branco.

    Moderador Leo Baiano

    (@leobaiano)

    Achei outro erro no meu código, desculpa mas escrevi tudo aqui mesmo no fórum então tem erro de digitação. Muda essa linha aqui wp_reset_postda(); por wp_reset_postdata();.

    Verifiquei o resto do código e parece estar ok, então não vai dar tela branca.

    Criador do tópico Welligton Sousa

    (@sousawelligton)

    Ainda deu tela branca.

    Moderador Leo Baiano

    (@leobaiano)

    Cola como ficou o código completo aqui por favor.

    Criador do tópico Welligton Sousa

    (@sousawelligton)

    <?php get_header(); ?>
    
    <?php include('includes/menu.php'); ?>
    
    	<div id="corpo-postagem"><!--Início do Corpo Postagem-->
    
    		<div id="page-pagina"><!--page pagina -->
    
    			<h1><?php the_title(); ?></h1></br>
    
    			<p>Utilize o ctrl + F para buscar a música desejada</p></br>
    
    			<div><!--Comeco da Listagem-->
    
    				<?php 
    					$args = array (
    					'posts_per_page' => -1,
    					'offset' => $debut,
    					'orderby' => 'title',
    					'order' => 'ASC',
    					'category__not_in' => array ( 383, 1654 )
    					);
    					
    					$todos_os_posts = new WP_Query ( $args );
    					
    					if ( $todos_os_posts->have_posts() ) {
    					echo '<ul>';
    						while ( $todos_os_posts->have_posts() ) {
    							$todos_os_posts->the_post();
    				?>
    					
    				<li>
    					<a href="<?php the_permalink(); ?>">
    						<?php the_title(); ?>
    					</a>						
    				</li>
    				<?php 
    					}
    					wp_reset_postdata();
    					echo '</ul>';
    					}
    				?>
    				
    			</div><!--Fim da Listagem-->
    
    		</div><!--page pagina -->
    
    	</div><!--Fim Corpo Postagem-->
    
    <?php get_footer(); ?>
    Moderador Leo Baiano

    (@leobaiano)

    Substitui tudo pelo código abaixo.

    
    <?php get_header(); ?>
    
    <?php // include('includes/menu.php'); ?>
    
    	<div id="corpo-postagem"><!--Início do Corpo Postagem-->
    
    		<div id="page-pagina"><!--page pagina -->
    
    			<h1><?php the_title(); ?></h1></br>
    
    			<p>Utilize o ctrl + F para buscar a música desejada</p></br>
    
    			<div><!--Comeco da Listagem-->
    
    				<?php 
    					$args = array(
    					'posts_per_page' => '-1',
    					'orderby' => 'title',
    					'order' => 'ASC',
    					'category__not_in' => array( 383, 1654 )
    					);
    					
    					$todos_os_posts = new WP_Query( $args );
    					
    					if ( $todos_os_posts->have_posts() ) {
    					echo '<ul>';
    						while( $todos_os_posts->have_posts() ) {
    							$todos_os_posts->the_post();
    				?>
    					
    				<li>
    					<a href="<?php the_permalink(); ?>">
    						<?php the_title(); ?>
    					</a>						
    				</li>
    				<?php 
    					}
    					wp_reset_postdata();
    					echo '</ul>';
    					}
    				?>
    				
    			</div><!--Fim da Listagem-->
    
    		</div><!--page pagina -->
    
    	</div><!--Fim Corpo Postagem-->
    
    <?php get_footer(); ?>
    
    • Esta resposta foi modificada 4 anos, 8 meses atrás por Leo Baiano. Razão: Corrigindo embed de código
    • Esta resposta foi modificada 4 anos, 8 meses atrás por Leo Baiano.
    Criador do tópico Welligton Sousa

    (@sousawelligton)

    O erro ainda continua. A página só fica branca.
    Eu apaguei o código php do meio e substitui apenas por <?php echo 'teste'?> e funcionou. A página aparece com a mensagem.

    Criador do tópico Welligton Sousa

    (@sousawelligton)

    Ainda aparece o erro.
    Fiz testa forma, para testar aonde era o erro.

    <?php get_header(); ?>
    
    <?php include('includes/menu.php'); ?>
    
    	<div id="corpo-postagem"><!--Início do Corpo Postagem-->
    
    		<div id="page-pagina"><!--page pagina -->
    
    			<h1><?php the_title(); ?></h1></br>
    
    			<p>Utilize o ctrl + F para buscar a música desejada</p></br>
    
    			<div><!--Comeco da Listagem-->
    
    				<?php echo 'teste'?>
    				
    			</div><!--Fim da Listagem-->
    
    		</div><!--page pagina -->
    
    	</div><!--Fim Corpo Postagem-->
    
    <?php get_footer(); ?>

    E realmente é no código para listar todos os posts

    Moderador Leo Baiano

    (@leobaiano)

    Troca o código que lista os posts pelo código abaixo, se ficar tela branca faz o seguinte man, vai tirando pedaços do código e testando para ver exatamente em qual parte tá o erro, ai você posta a parte errada aqui que eu corrijo pra você. É que onde estou agora não tenho como inserir o código para simular e ver o que pode estar errado.

    
    <div><!--Comeco da Listagem-->
    
    				<?php 
    					$args = array(
    					'posts_per_page' => '-1',
    					'orderby' => 'title',
    					'order' => 'ASC',
    					'category__not_in' => array( 383, 1654 )
    					);
    					
    					$todos_os_posts = new WP_Query( $args );
    					
    					if ( $todos_os_posts->have_posts() ) {
    					echo '<ul>';
    						while( $todos_os_posts->have_posts() ) {
    							$todos_os_posts->the_post();
    				?>
    					
    				<li>
    					<a href="<?php the_permalink(); ?>">
    						<?php the_title(); ?>
    					</a>						
    				</li>
    				<?php 
    					}
    					wp_reset_postdata();
    					echo '</ul>';
    					}
    				?>
    				
    			</div><!--Fim da Listagem-->
    
Visualizando 15 respostas - 1 até 15 (de um total de 19)
  • O tópico ‘Criar uma página com todos os posts listados’ está fechado para novas respostas.