Suporte » Ajustando o WordPress » Como manter somente os posts do mês na home

  • Resolvido Ricardo Tomassoni

    (@ricardo-tomassoni)


    Como faço para manter somente os posts do mês na home? Existe um jeito de fazer com que os posts dos meses anteriores irem para o arquivo respectivo automaticamente?

Visualizando 15 respostas - 1 até 15 (de um total de 16)
  • Coloque antes do Loop da página index.php a seguinte linha:

    $mes = date('m'); query_posts('monthnum=' . $mes );

    Caso não saiba, o Loop é a estrutura para exibir os posts. Um exemplo:

    if ( have_posts() ) : while ( have_posts() ) : the_post();

    http://codex.wordpress.org/The_Loop

    Lembrando que é a página index.php que fica na pasta de seu tema.

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    Me desculpa a ignorância, mas tentei colocar essa linha no loop e não deu certo. Estou te mandando o loop e gostaria que você me mostrasse onde exatamente eu poderia inserir essa linha. Agradeço muito sua ajuda.

    <div id=”body”>

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

    <div class=”post” id=”post-<?php the_ID(); ?>”>

    <div class=”date”>
    <span class=”month”><?php the_time(‘M’) ?></span>
    <span class=”day”><?php the_time(‘j’) ?></span>
    <span class=”year”><?php the_time(‘Y’) ?></span>
    </div>

    Novamente obrigado pela ajuda.

    Ricardo

    Em baixo da linha <div id="body">

    É só inserir em baixo a linha:

    <?php mes = date('m'); query_posts('monthnum=' . $mes ); ?>

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    Olha eu novamente aqui… Desculpa de novo, mas coloquei a linha que você me mando eu não funcionou.

    Ficou desse jeito:

    <?php get_header(); ?>
    <div id=”content-container”>

    <div id=”content”>

    <div id=”body”>

    <?php mes = date(‘m’); query_posts(‘monthnum=’ . $mes ); ?>

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

    <div class=”post” id=”post-<?php the_ID(); ?>”>

    Quando dou um refresh no blog aparece essa mensagem:

    Parse error: syntax error, unexpected ‘=’ in /home/content/b/l/e/blendconnect/html/news/wp-content/themes/elegant-grunge/index.php on line 8

    Que faço?

    Obrigado novamente.

    Ricardo

    Apague as aspas no código da linha que te passei (linha 8) e digite novamente.

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    Meu caro amigo. Deve estar acabando com sua paciência. Mil desculpas por isso. Estou tentando, mas está difícil.

    Apaguei as aspas no código da linha que você me passou, como mostro abaixo:

    <?php get_header(); ?>
    <div id=”content-container”>

    <div id=”content”>

    <div id=”body”>

    <?php mes = date(m); query_posts(monthnum= . $mes ); ?>

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

    <div class=”post” id=”post-<?php the_ID(); ?>”>

    <div class=”date”>
    <span class=”month”><?php the_time(‘M’) ?></span>
    <span class=”day”><?php the_time(‘j’) ?></span>
    <span class=”year”><?php the_time(‘Y’) ?></span>
    </div>

    Dei um refresh no blog e me aparecu essa mensagem:

    Parse error: syntax error, unexpected ‘=’ in /home/content/b/l/e/blendconnect/html/news/wp-content/themes/elegant-grunge/index.php on line 8

    Me parece ser a mesma mensagem que antes. Fique a vontade de não querer mais me ajudar, pois até eu estou me achando muito chato.

    Ibrigado por tudo.

    Ricardo

    Sem problemas! 🙂

    Vamos tentar de outra forma…

    Utilize está linha:

    <?php mes = date("m"); query_posts(array("monthnum" => $mes)); ?>

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    Luís

    Ainda não foi dessa vez. Coloquei a nova linha e ocorreu o mesmo erro de antes. Aprovetei me antecipando também tirei as aspas e não funcionou de novo.

    Com a linha nova ficou assim:

    <?php get_header(); ?>
    <div id=”content-container”>

    <div id=”content”>

    <div id=”body”>

    <?php mes = date(“m”); query_posts(array(“monthnum” => $mes)); ?>

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

    <div class=”post” id=”post-<?php the_ID(); ?>”>

    <div class=”date”>
    <span class=”month”><?php the_time(‘M’) ?></span>
    <span class=”day”><?php the_time(‘j’) ?></span>
    <span class=”year”><?php the_time(‘Y’) ?></span>
    </div>

    E o erro que me mostra é o mesmo:

    Parse error: syntax error, unexpected ‘=’ in /home/content/b/l/e/blendconnect/html/news/wp-content/themes/elegant-grunge/index.php on line 8

    Abraços

    Ricardo

    Está faltando o $ antes do mes:
    <?php $mes = date("m"); query_posts(array("monthnum" => $mes)); ?>

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    Sinto que estamos chegando perto da solução. O que aconteceu foi o seguinte. Todos os posts anteriores (de julho) sumiram, mesmo quando clico na palavra “julho” no arquivos eles não aparecem. Quando clico no menu “home” também aparece somente os posts de agosto.

    Ou seja, independente de onde clico, na palavra “home” do menu ou na palavra “julho” dos arquivos aparecem somente os posts de agosto. Os anteriores sumiram.

    Ainda estou com aquele grito: HELP por favor.

    O loop ficou dessa forma:

    <?php get_header(); ?>
    <div id=”content-container”>

    <div id=”content”>

    <div id=”body”>

    <?php $mes = date(“m”); query_posts(array(“monthnum” => $mes)); ?>

    <?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

    <div class=”post” id=”post-<?php the_ID(); ?>”>

    <div class=”date”>
    <span class=”month”><?php the_time(‘M’) ?></span>
    <span class=”day”><?php the_time(‘j’) ?></span>
    <span class=”year”><?php the_time(‘Y’) ?></span>
    </div>

    Abraços

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    O que eu gostaria de ver no meu blog é, na home somente os posts do mês atual, mas quando as pessoas clicassem nos arquivos, nos meses anteriores, tivessem acesso aos posts referentes as cada mês anterior.

    Abraços novamente

    Ricardo

    Vc tem um arquivo chamado archive.php?

    Se não tiver, copie o index.php que vc modificou, renomeie para o nome acima, retire a linha que vc acrescentou e salve.

    Aí deve funcionar.

    Criador do tópico Ricardo Tomassoni

    (@ricardo-tomassoni)

    Desculpe Renato, mas como exatamente eu faria isso?

    Eu não tenho nehum arquivo chamado archive.php. O que tenho no meu blog é um widget que mostra o mês atual e os meses anteriores.

    O que eu queria era manter na home somente os posts atuais e quem quiser ver os posts anteriores clicaria no respectivo mês.

    Eu tentei fazer o que você sugeriu. Copiei o index.php, mas depois não soube o que fazer para renomea-lo e salvar.

    Pelo meno no wordpress não consegui fazer isso.

    Obrigado novamente pela ajuda.

    Abraços

    Ricardo

    Ricardo, esqueça o que foi passado e tente o seguinte:
    Coloque antes do Loop da página index.php a seguinte linha:
    if (is_home()) query_posts('monthnum=' . date('m') );

Visualizando 15 respostas - 1 até 15 (de um total de 16)
  • O tópico ‘Como manter somente os posts do mês na home’ está fechado para novas respostas.