Поддержка Проблемы и решения Как вывести записи с определенной датой публикации?

  • Решено aleks

    (@aleks683)


    Добрый день! Есть хороший код:

    <?php 
    $date = getdate();
    $date["mday"] = $date["mday"] - 1;
    $yesterdayposts = new WP_Query('showposts=5' . '&year=' .$date["year"] 
    .'&monthnum=' .$date["mon"] .'&day=' .$date["mday"]); ?>  
    <p>Записи за вчера (<?php echo date("d.m.Y", time()-(60*60*24));  ?>): </p>
    <ul>
    <?php while($yesterdayposts->have_posts()) : $yesterdayposts->the_post(); ?>
    <li><a href='<?php the_permalink(); ?>'><?php the_title(); ?></a></li>
    <?php endwhile; ?> 
    </ul>
    <?php wp_reset_query(); ?>

    Этот код выводит список заголовков записей за вчера, но оказывается как наступает 1-ое число месяца он теряет работоспособность и ничего не выводит.

    Как можно это поправить?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yui

    (@fierevere)

    永子

    $date["mday"] = $date["mday"] - 1;
    возвращает 0

    
    <?php 
    $timestamp = time() - 86400;
    $date = getdate($timestamp);
    
    $yesterdayposts = new WP_Query('showposts=5' . '&year=' .$date["year"] 
    .'&monthnum=' .$date["mon"] .'&day=' .$date["mday"]); ?>  
    <p>Записи за вчера (<?php echo date("d.m.Y", time()-(60*60*24));  ?>): </p>
    <ul>
    <?php while($yesterdayposts->have_posts()) : $yesterdayposts->the_post(); ?>
    <li><a href='<?php the_permalink(); ?>'><?php the_title(); ?></a></li>
    <?php endwhile; ?> 
    </ul>
    <?php wp_reset_query(); ?>
    

    вот так попробуйте
    глючить не будет с 0 значениями дня и месяца

    хех, такой код хрен проверишь, если сегодня не 1 число месяца, исправлю.

    Автор aleks

    (@aleks683)

    Yui спасибо большое! Шикарное решение!

    Можно еще вопрос по теме. Я использую следующий код:

    <?php 
    $timestamp = time() - 86400;
    $date = getdate($timestamp);
    $yesterdayposts = new WP_Query('orderby=date&showposts=1' . '&year=' .$date["year"] 
    .'&monthnum=' .$date["mon"] .'&day=' .$date["mday"]); ?>  
    <p>Записи за вчера (<?php echo date("d.m.Y", time()-(60*60*24));  ?>): </p>
    <ul>
    <?php while($yesterdayposts->have_posts()) : $yesterdayposts->the_post(); ?>
    <li>
    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
     <?php the_post_thumbnail(array(300, 200)); ?></a>
    </li>
    <?php endwhile; ?> 
    </ul>
    <?php wp_reset_query(); ?>

    А можно ли сделать?: если за вчерашний день нету никаких записей, вместо нее была бы картинка по умолчанию, а не пустота как сейчас.

    Модератор Yui

    (@fierevere)

    永子

    <?php 
    $timestamp = time() - 86400;
    $date = getdate($timestamp);
    $yesterdayposts = new WP_Query('orderby=date&showposts=1' . '&year=' .$date["year"] 
    .'&monthnum=' .$date["mon"] .'&day=' .$date["mday"]); ?>  
    
    <p>Записи за вчера (<?php echo date("d.m.Y", $timestamp);  ?>): </p>
    <ul>
    <?php if ( $yesterdayposts->have_posts() ) : while($yesterdayposts->have_posts()) : $yesterdayposts->the_post(); ?>
    <li>
    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
     <?php the_post_thumbnail(array(300, 200)); ?></a>
    </li>
    <?php endwhile; else: ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
    <?php endif; ?>
    </ul>
    <?php wp_reset_query(); ?>

    вот это <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> можно заменить на img src картинки

    Автор aleks

    (@aleks683)

    Yui спасибо большое! Вопрос закрыт.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    такой код хрен проверишь, если сегодня не 1 число месяца

    Всегда можно посмотреть, какие параметры передаются в WP_Query и какой запрос в итоге получается.

    Всегда можно посмотреть, какие параметры передаются в WP_Query и какой запрос в итоге получается.

    можно, конечно. но когда все работает — как-то не тянет дебажить запрос 🙂

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Как вывести записи с определенной датой публикации?» закрыта для новых ответов.