Итак, вот решение вашей проблемы. Я подумал, что было бы проще добавить дополнительные мета-поля, "birthday_month
" и "birthday_day
" - поэтому, если вы добавляете их в post_save
ловушку, вам не нужно вводить какие-либо дополнительные данные.
add_action('save_post', 'he_add_birthday_details', 10, 1);
function he_add_birthday_details($postid){
// Check if birthday is set
if (!empty(get_post_meta($postid, 'birthday', true))) {
// if it is set - get it
$birthday = get_post_meta($postid, 'birthday', true);
// parse the date into components
$month = date('m' , strtotime($birthday));
$day = date('d', strtotime($birthday));
// Save new postmeta fields
update_post_meta($postid, 'birthday_month', $month);
update_post_meta($postid, 'birthday_day', $day);
}
Тогда вы можете сделать свой l oop с новыми полями.
$current_month = date('m'); // get current month
$filter_month = $current_month; // show current month only
$args = array(
'post_type' => 'employees',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'birthday_month',
'value' => $current_month
),
'date_clause' => array(
'key' => 'birthday_day',
'compare' => 'EXISTS'
)
),
'orderby' => 'date_clause',
'order' => 'ASC'
);
$posts = new WP_Query($args);