Одним из полей для моего пользовательского типа сообщения является дата рождения участника, включая год.
Однако для отображения предстоящего дня рождения мне нужно исключить год из моего запроса и просто использовать месяц и день. Я надеялся отформатировать текущую дату и дату настраиваемого поля в mmdd, чтобы я мог просто сравнить их.
Нижеприведенный год, однако, учитывает год и, таким образом, приводит к 12 марта 1963 года, показывающему до 18 февраля 1965 года (просто из-за года)
function tsum_home_birthday_widget() {
// ACF Date Picker Input: j F M Also tried nd
// ACF Date Picker Output: j F M Also tried nd
//$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
//$currentdate = date("nd",mktime(0,0,0,date("m"),date("d"),date("Y")));
$currentdate = date('nd');
$birthDate = get_field('breeder_birthday', false, false);
$meta_query = array (
'key' => 'breeder_birthday',
// 'key' => $birthDate, // try to use variable so I can chnage the format of the date
'compare' => '<=', // chnage to >= once I know how to exclude the year.
'value' => $currentdate,
'type' => 'DATE',
);
$args = array(
'post_type' => 'breeders',
'meta_key' => 'breeder_birthday',
//'meta_key' => $birthDate, // try to use variable so I can chnage the format of the date
'orderby' => 'meta_value_num',
'orderby' => 'meta_value',
'order' => 'ASC',
'posts_per_page' => '5',
'meta_query' => $meta_query,
);
$wp_query = new WP_Query( $args );
while( $wp_query->have_posts() )
{
$wp_query->the_post();
?>
<ul class="widget">
<li>
<?php if( get_field('breeder_contact') ): ?>
<?php the_field( 'breeder_contact' ); ?>
<?php endif; ?>
<?php if( get_field('breeder_birthday') ): ?>
<?php
$bbday = get_field('breeder_birthday', false, false);
$bbday = new DateTime($bbday); ?>
<?php echo $bbday->format('d F Y'); ?>
<?php endif; ?>
</li>
<hr>
</ul>
<?php
}
wp_reset_query();
}
add_shortcode('Birthdays', 'tsum_home_birthday_widget');