Suporte » Ajustando o WordPress » Posts não aparecem na Página se não for index.

  • Resolvido kaiquemix

    (@kaiquemix)


    Olá boa tarde, estou com um problema, onde meus POSTS aparecem normalmente na pagina index.php porem criei uma pagina idêntica chamada portfolio, porem nela não aparece os posts inseridos, mas aparece o nome da pagina como se fosse um post.
    IMAGENS:
    http://i.imgur.com/gmyH2Mb.jpg
    http://i.imgur.com/NbtIGo6.png

                <main id="main" class="grid cf" role="article" itemscope itemprop="mainContentOfPage" itemtype="http://schema.org/Blog">
    
                  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
                  <article id="post-<?php the_ID(); ?>" <?php post_class( 'cf' ); ?> role="article" class="">
    
                  
                   <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
                                    
                      <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">      
                        <div class="element-item" style=" background-image:url(<?php echo $image[0];?>); ">
                          <div class="mask">
                              <div class="conteudo_mask" style="transform: translateY(-50%);top: 50%;position: relative;">
                                 <h1><?php the_title(); ?></h1>
                                 <div id="lin" style="width: 110px;"></div>
                                 <h2><?php foreach((get_the_category()) as $category) { echo $category->cat_name . ' '; } ?></h2>
                              </div>
                              <h3 style="transform: translateY(-50%);top: 50%;position: relative;">VEJA <br><img src="<?php echo get_template_directory_uri(); ?>/library/images/mais.png" alt="mais" style="width: 20px;height: 19px;margin-bottom: -1px;margin-top: 12px;margin-left:0px;">
                              </h3>
                          </div>
                        </div>
                      </a>
    
                  </article>
    
                  <?php endwhile; ?>
    
                      <?php bones_page_navi(); ?>
    
                  <?php else : ?>
    
                      <article id="post-not-found" class="hentry cf">
                          <header class="article-header">
                            <h1><?php _e( 'Oops, Post Not Found!', 'bonestheme' ); ?></h1>
                        </header>
                          <section class="entry-content">
                            <p><?php _e( 'Uh Oh. Something is missing. Try double checking things.', 'bonestheme' ); ?></p>
                        </section>
                        <footer class="article-footer">
                            <p><?php _e( 'This is the error message in the index.php template.', 'bonestheme' ); ?></p>
                        </footer>
                      </article>
    
                  <?php endif; ?>
    
                </main>
Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá @kaiquemix, tudo bem?

    Esse código que você usou faz parte do Loop do WordPress e funciona com a query nativa em páginas de listagem (index, categorias, tags, autores, etc…).

    Para mostrar posts fora dessas páginas, você precisa montar sua própria query com a classe WP_Query.

    Abraços

    Criador do tópico kaiquemix

    (@kaiquemix)

    olá @mariovalney
    então no meu index vai ter um limite de 15 para aparecer ae quero criar uma segunda pagina que irá aparecer todas, poderia me informa então como eu poderia fazer isso?

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá @kaiquemix

    Você precisa seguir a documentação da WP_Query:
    https://codex.wordpress.org/Class_Reference/WP_Query

    Lá você tem todos os exemplos. O que você precisa é algo nesse sentido:

    <?php 
    // the query
    $the_query = new WP_Query( $args ); ?>
    
    <?php if ( $the_query->have_posts() ) : ?>
    
    	<!-- pagination here -->
    
    	<!-- the loop -->
    	<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    		<h2><?php the_title(); ?></h2>
    	<?php endwhile; ?>
    	<!-- end of the loop -->
    
    	<!-- pagination here -->
    
    	<?php wp_reset_postdata(); ?>
    
    <?php else : ?>
    	<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
    <?php endif; ?>

    Claro que não pode esquecer de criar a array de argumentos (antes do código acima):

    $args = array(
        'posts_per_page' => 15,
    );
    • Esta resposta foi modificada 7 anos, 5 meses atrás por Mário Valney.
    Criador do tópico kaiquemix

    (@kaiquemix)

    Olá @mariovalney

    consegui entretanto a <?php echo $image[0];?> fica em branco em vez de aparece a imagem destacada 🙁

    Criador do tópico kaiquemix

    (@kaiquemix)

    Axei meu ERRO, agora deu certo mto obrigado amigo 😀

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Posts não aparecem na Página se não for index.’ está fechado para novas respostas.