Экспорт постов WordPress в PDF — востребованная функция для создания отчетов, документов или предоставления контента в удобном формате. В этой статье мы подробно разберем, как реализовать автоматическую генерацию PDF-файлов из постов WordPress с помощью кода и популярных плагинов, а также рассмотрим практические примеры и рекомендации.
Почему автоматический экспорт постов в PDF важен
PDF — универсальный формат, удобный для чтения, печати и распространения. Автоматизация процесса экспорта позволяет сэкономить время, избежать ручной работы и улучшить пользовательский опыт, предоставляя контент в нужном формате по расписанию или по запросу.
Частые сценарии использования:
- Создание ежемесячных отчетов с постами блога или новостями.
- Формирование каталогов продукции или портфолио.
- Автоматическая отправка PDF-копий подписчикам.
Способы реализации автоматического экспорта постов в PDF
Использование PHP-библиотеки TCPDF для генерации PDF
TCPDF — популярная библиотека для создания PDF на PHP. Мы покажем, как интегрировать её в WordPress для генерации PDF из содержимого поста.
Шаги:
- Устанавливаем TCPDF в папку темы или плагина. Скачать можно с официального сайта.
- Создаем кастомный endpoint или шорткод для генерации PDF.
function wpteam_generate_pdf_from_post($post_id) {
require_once get_template_directory() . '/tcpdf/tcpdf.php';
$post = get_post($post_id);
if (!$post) {
return false;
}
$pdf = new TCPDF();
$pdf->AddPage();
$title = $post->post_title;
$content = apply_filters('the_content', $post->post_content);
$pdf->SetFont('dejavusans', '', 14);
$pdf->Write(0, $title, '', 0, 'C', true, 0, false, false, 0);
$pdf->Ln(10);
$pdf->SetFont('dejavusans', '', 12);
$pdf->writeHTML($content, true, false, true, false, '');
$filename = sanitize_title($title) . '.pdf';
$pdf->Output(WP_CONTENT_DIR . '/uploads/' . $filename, 'F');
return content_url() . '/uploads/' . $filename;
}Эта функция принимает ID поста, создает PDF и сохраняет его в папку uploads, возвращая ссылку на файл.
Автоматическая генерация PDF при публикации поста
Чтобы PDF создавался автоматически при публикации записи, можно добавить хук:
function wpteam_generate_pdf_on_publish($post_id) {
if (get_post_type($post_id) !== 'post') {
return;
}
wpteam_generate_pdf_from_post($post_id);
}
add_action('publish_post', 'wpteam_generate_pdf_on_publish');Теперь при публикации каждый пост будет иметь PDF-версию в uploads.
Использование плагина "PDF & Print by BestWebSoft" для удобного экспорта
Если хочется готовое решение с минимальным кодом, рекомендую плагин PDF & Print by BestWebSoft. Он добавляет кнопки печати и экспорта в PDF на страницы постов.
Плюсы:
- Легкая настройка через админку.
- Поддержка кастомных типов записей и шаблонов.
- Возможность автоматической генерации PDF.
Для автоматизации можно использовать их API или расширения, а также интегрировать с WP Cron для периодического экспорта.
Автоматический экспорт множества постов в один PDF-файл
Часто требуется сформировать один большой PDF из нескольких постов, например, для отчета или сборника. Вот пример функции для этого:
function wpteam_export_multiple_posts_pdf($post_ids) {
require_once get_template_directory() . '/tcpdf/tcpdf.php';
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('dejavusans', '', 12);
foreach ($post_ids as $post_id) {
$post = get_post($post_id);
if (!$post) continue;
$pdf->SetFont('', 'B', 14);
$pdf->Write(0, $post->post_title, '', 0, 'L', true, 0, false, false, 0);
$pdf->Ln(2);
$content = apply_filters('the_content', $post->post_content);
$pdf->SetFont('', '', 12);
$pdf->writeHTML($content, true, false, true, false, '');
$pdf->AddPage();
}
$filename = 'posts_collection_' . time() . '.pdf';
$pdf->Output(WP_CONTENT_DIR . '/uploads/' . $filename, 'F');
return content_url() . '/uploads/' . $filename;
}Вы можете вызвать эту функцию с массивом ID постов, чтобы получить ссылку на готовый PDF.
Рекомендации по безопасности и производительности
При работе с генерацией PDF важно учитывать нагрузку на сервер, особенно при массовом экспорте. Для этого:
- Используйте WP Cron для запуска задач в фоне.
- Кешируйте результаты, чтобы не генерировать PDF каждый раз заново.
- Ограничивайте права доступа к PDF, если контент приватный.
- Обрабатывайте ошибки и проверяйте наличие файлов перед выводом ссылок.
Также можно использовать плагин Clearfy Pro для оптимизации работы сайта и снижения нагрузки при обработке больших объемов данных.
Вывод
Автоматический экспорт постов WordPress в PDF — задача, которую можно решить как с помощью кода, так и с помощью готовых решений. Использование библиотеки TCPDF дает полный контроль над процессом, а плагины позволяют быстро внедрить функционал. Главное — учитывать особенности сайта, объем контента и требования к безопасности.
Для более удобного старта рекомендую ознакомиться с плагином PDF & Print на WPSHOP, который поможет быстро добавить экспорт PDF на ваш сайт.