#wordpress #date #field
#wordpress #Дата #поле
Вопрос:
У меня есть несколько сообщений, используемых в качестве событий, с пользовательским полем для даты события. Я ищу упорядочение этих сообщений по дате события (в хронологическом порядке). Мне интересно:
- Возможно ли установить пользовательское поле даты события в формате «дата» (на данный момент это простой тип = текст).
- Как упорядочить эти сообщения, если я всегда использую один и тот же формат (например, дд / мм / гггг). Мне нужно получить 3 ближайших события (не последние 3).
Есть ли в WordPress встроенная функция, которая могла бы сравнивать дату с сегодняшней датой?
Спасибо
Ответ №1:
Я только что сделал это! (www.wherewordsgo.com )
хорошо, у меня это работает только для «страниц», но.
но если вы создадите мета-поле для «крайнего срока», а затем поместите дату в формате гггг / мм / дд и добавите это в свой functions.php это может помочь:
add_action(‘wp’, ‘check_page’); функция check_page () { if (is_page()) { add_filter(‘get_previous_post_sort’, ‘sort_it’); add_filter(‘get_next_post_sort’, ‘sort_it’); add_filter(‘posts_orderby’, ‘sort_it’); add_filter(‘posts_join’, ‘ join_it’ ); add_filter(‘posts_where’, ‘where_it’ );
function sort_it () {
global $wpdb;
return " $wpdb->postmeta.meta_value ASC ";
}
function join_it( $join ) {
global $wpdb;
$join .= " LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) ";
return $join;
}
function where_it( $where ) {
global $wpdb;
$where .= "AND $wpdb->postmeta.meta_key = 'deadline' ";
return $where;
}
}
Я получил это с какого-то сайта (ссылку на который я потерял… большой WP чувак, хотя я думаю) и изменил его по мере необходимости. Как я уже сказал, это работает только для пользовательских страниц в моей сборке (я использую пользовательский тип), но вполне может работать для всего, если вы измените функцию ‘is_page ()’ в начале на то, что является относительным для вас.
Надеюсь, это поможет