Intereting Posts
Добавить имя файла в URL страницы вложения Нужно отредактировать htaccess при перемещении по WordPress язык полиланга на домен отключен Математические операции с настраиваемыми значениями полей? (обновлено) Как получить аватар аватара Получать учетные записи авторов после исключения категории API-интерфейс и страницы настроек Отображение главного меню и дочернего меню в разных местах на одной странице Как добавить пользовательские атрибуты в теги javascript в WordPress? Добавить код Adsense между списками вакансий – плагин менеджера работы wp Дублировать пользовательские функции заголовка на экране редактирования сообщений Использование front-page.php нуждается в новой странице блога Ошибка wp_handle_upload «Указанный файл с ошибкой при загрузке», но все же создает вложение? Ошибка пользовательской почты типа 404 на «стандартных» или «числовых» константах Создайте страницу с повторяющимися категориями с вариациями содержимого

Трудно меняющийся формат даты в метатете post

У меня есть пользовательский тип сообщения с настраиваемым полем, которое принимает дату. Посты позже упорядочены по дате в этом настраиваемом поле. К сожалению, я неверно отформатировал дату и уже есть число сообщений с метатемой post dd-mm-yyyy. Я нашел, что для использования этого значения в качестве orderby (WPQuery) он должен быть yyyy-mm-dd. Поэтому я собирался попробовать:

$args = array( 'posts_per_page' => -1, 'post_type'=> 'match_report' ); $wp_query = new WP_Query(); $wp_query->query($args); if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); $matchdate = get_post_meta($post->ID, 'report_date', true); $new_matchdate = strftime("%Y-%m-%d", $matchdate); update_post_meta($post->ID, 'report_date', $new_matchdate); endwhile; wp_reset_postdata(); endif; ?> 

но я получаю

 Notice: A non well formed numeric value encountered in... 

и когда я эхо $new_matchdate я получаю 1970-01_01, поэтому, очевидно, я делаю это неправильно. Любая помощь будет оценена по достоинству.

О, мой. Вы делаете там какой-то причудливый материал. 🙂

Пожалуйста, попробуйте:

 $args = array( 'posts_per_page' => -1, 'post_type'=> 'match_report', ); $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); $matchdate = get_post_meta(get_the_ID(), 'report_date', true); $new_matchdate = DateTime::createFromFormat('dm-Y', $matchdate); update_post_meta(get_the_ID(), 'report_date', $new_matchdate->format('Ym-d')); } wp_reset_postdata(); } 

// РЕДАКТИРОВАТЬ
Если у вас есть проблемы с объектно-ориентированным способом, попробуйте сделать это процедурно:

 $args = array( 'posts_per_page' => -1, 'post_type'=> 'match_report', ); $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); $matchdate = get_post_meta(get_the_ID(), 'report_date', true); $new_matchdate = date_create_from_format('dm-Y', $matchdate); update_post_meta(get_the_ID(), 'report_date', date_format($new_matchdate, 'Ym-d')); } wp_reset_postdata(); }