Вопрос или проблема
Возможно ли, с помощью кода, настроек wp-admin или базы данных, скачать записи из пользовательского типа записей на основе определенного диапазона дат?
Когда я захожу в wp-admin и использую инструмент экспорта, я могу легко скачать записи на основе заданного диапазона дат вот так…
Но как только я выбираю свой пользовательский тип записей “Карьера”, опции Начальная дата или Конечная дата отсутствуют.
Можем ли мы настроить это сегодня в современном WordPress для экспорта на основе диапазона дат?
Если у вас есть доступ к WP CLI, возможно, имеет смысл попробовать команду wp export
.
wp export --post_type=career --start_date=2011-01-01 --end_date=2011-12-31
Ответ или решение
Экспортирование постов на основе пользовательского типа и диапазона дат – это задача, которая может быть решена различными способами в современном WordPress. В этой статье мы рассмотрим, как можно выполнить экспорт постов пользовательского типа, например, "Careers", в заданном диапазоне дат, с использованием как пользовательского кода, так и инструментов администрирования WordPress.
1. Введение
Если вы хотите экспортировать посты определенного пользовательского типа по заданному диапазону дат, вы сталкиваетесь с ограничениями стандартного инструмента экспорта WordPress. В отличие от стандартных постов, пользовательские посты не предлагают возможность выбора диапазона дат в интерфейсе администрирования. Тем не менее, существуют решения, которые позволят осуществить экспорт постов в соответствии с заданными параметрами.
2. Использование WP-CLI
Если у вас есть доступ к WP-CLI (интерфейс командной строки WordPress), это один из самых эффективных способов выполнить экспорт. WP-CLI предоставляет команду wp export
, которая позволяет детализировать запросы.
Шаги:
-
Убедитесь, что WP-CLI установлен: Если вы находитесь на совместимом сервере, доступ к WP-CLI должен быть налажен.
-
Выполните команду экспорта: Для экспорта постов пользовательского типа "Careers" в рамках диапазона дат можно использовать следующую команду:
wp export --post_type=career --start_date=2011-01-01 --end_date=2011-12-31
-
Обработка результатов: После выполнения команды вы получите файл в формате XML, содержащий все посты пользовательского типа, созданные в указанный вами период.
3. Экспорт через пользовательский код
Если вы не имеете доступа к WP-CLI, вы также можете использовать пользовательский код, чтобы запросить нужные посты и экспортировать их в CSV или другой формат.
Пример кода:
function export_custom_posts($start_date, $end_date) {
$args = array(
'post_type' => 'career',
'date_query' => array(
array(
'after' => $start_date,
'before' => $end_date,
'inclusive' => true,
),
),
'posts_per_page' => -1,
);
$custom_posts = new WP_Query($args);
if ($custom_posts->have_posts()) {
$csv_output = "ID,Title,Date\n"; // Заголовки CSV
while ($custom_posts->have_posts()) {
$custom_posts->the_post();
$csv_output .= get_the_ID() . "," . get_the_title() . "," . get_the_date() . "\n";
}
wp_reset_postdata();
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.csv"');
echo $csv_output;
exit;
} else {
echo "Нет постов для экспорта.";
}
}
// Пример вызова функции
export_custom_posts('2011-01-01', '2011-12-31');
4. Заключение
Таким образом, несмотря на ограничения стандартного интерфейса WordPress для экспорта пользовательских постов по датам, вы можете использовать мощные инструменты, такие как WP-CLI, или создать пользовательское решение с помощью кода. Оба метода требуют определенных технических навыков, но способны дать вам полный контроль над вашими данными.
Соблюдение данных методов, как через WP-CLI, так и через пользовательский код, обеспечивает гибкость в управлении вашими пользовательскими постами и позволяет экспортировать нужные вам данные согласно заданным параметрам.