Запросы и условия связанные с датой.
Вывод записей по дате
Вывод записей сделанных в этот день игнорируя год. Если нужен год, то надо добавить вначале ‘year=’ . $today[«year»]-1 .
<?php $today = getdate();
query_posts( '&monthnum=' . $today["mon"] . '&day=' . $today["mday"] . '&cat=2' . '&posts_per_page=-1' ); ?>
<?php if (have_posts()) : ?>
<h2 class="headwidgit">Поздравляем с днём рождения!<h2>
<?php while ( have_posts() ) : the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
Условие день недели =
<?php $dayofweek = date('l'); //Определяем текущий день недели ?>
<?php if ($dayofweek == Monday) : //Если день недели – понедельник ?>
какое-либо действие
<?php endif; ?>
Дни недели на-английском языке:
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
- Sunday
На php есть альтернативное определение дня недели $dayofweek = date(‘w’, strtotime($date));. Оно должно выводить числовое значение дня недели 1-7 (причем 1-воскресенье).
Хитрый вывод именинников
Хитрость заключается в том, что в понедельник дополнительно выводим записи именинников за прошедшие два дня (субботу и воскресенье).
<?php
$today_day = date("d");
$today_month = date("m");
$today_year = date("Y");
//echo date("w"); // день недели
//echo '<br>';
//
$today = $today_year.'-'.$today_month.'-'.$today_day;
//echo $today;
//echo '<br>';
$date = new DateTime($today);
//$date = new DateTime('2019-09-02'); // для тестирования
//echo $date->format('Y-m-d');
?>
<?php if ($date->format('w') == 1) : //Если день недели – понедельник ?>
<?php $date->modify('-2 day'); // Возвращаемся на 2 дня назад
query_posts('&monthnum='.$date->format('m').'&day='.$date->format('d').'&cat=2'.'&posts_per_page=-1');
if (have_posts()) : ?>
<?php include_once(TEMPLATEPATH."/hbd.php"); ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="maxheight clearfix">
<a title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail ('people-thumb'); } ?>
</a>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php $text = get_field(dolg); if($text!="") { echo "<small>".$text."</small>"; } ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php $date = new DateTime($today); // Обновляем дату
$date->modify('-1 day'); // Возвращаемся на 1 день назад
query_posts('&monthnum='.$date->format('m').'&day='.$date->format('d').'&cat=2'.'&posts_per_page=-1');
if (have_posts()) : ?>
<?php include_once(TEMPLATEPATH."/hbd.php"); ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="maxheight clearfix">
<a title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail ('people-thumb'); } ?>
</a>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php $text = get_field(dolg); if($text!="") { echo "<small>".$text."</small>"; } ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php $date = new DateTime($today); // Обновляем дату
query_posts('&monthnum='.$date->format('m').'&day='.$date->format('d').'&cat=2'.'&posts_per_page=-1');
if (have_posts()) : ?>
<?php include_once(TEMPLATEPATH."/hbd.php"); ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="maxheight clearfix">
<a title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail ('people-thumb'); } ?>
</a>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php $text = get_field(dolg); if($text!="") { echo "<small>".$text."</small>"; } ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php else: ?>
<?php query_posts('&monthnum='.$date->format('m').'&day='.$date->format('d').'&cat=2'.'&posts_per_page=-1');
if (have_posts()) : ?>
<?php include_once(TEMPLATEPATH."/hbd.php"); ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="maxheight clearfix">
<a title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail ('people-thumb'); } ?>
</a>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php $text = get_field(dolg); if($text!="") { echo "<small>".$text."</small>"; } ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php endif; ?>
Благодаря вызову include_once(TEMPLATEPATH.»/hbd.php»); мы единожды выводим фразу «С Днём рождения!».
Вывод записей за определенный месяц
<?php
$args = array(
'orderby' => 'date',
'cat' => 2,
'posts_per_page' => -1,
'order' => ASC,
'date_query' => array(
array(
'month' => 1 //январь
),
),
);
$my_query = new WP_Query( $args );
if( $my_query->have_posts() ) {
echo 'Именинники января';
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; }
wp_reset_query(); ?>
[site-socialshare]