У вас вопрос очень открытый. Как правило, переполнение стека задает вопросы по очень конкретным вещам, например: «Почему этот фрагмент кода работает не так, как ожидалось?» или «Какую функцию я должен использовать для выполнения задачи XYZ в [insert language language name here]».
Сказав это - мы все время нуждаемся в кикстарте, когда дело доходит до выяснения процесса. Итак, я отвечу на ваш вопрос, насколько смогу; не будучи слишком конкретным (в конце концов, я не здесь, чтобы выполнить вашу задачу для вас;)).
Вам действительно нужно что-то кодировать ?: Если вы хотите преобразовать сообщение WordPress в PDF, возможно, вы собираетесь заново изобрести колесо. Вот два плагина, которые я нашел в верхней части поиска Google (я никогда не использовал их, и не полностью прочитайте документацию):
Они могли бы сделать именно то, что вам нужно, без необходимости вникать в свое собственное кодирование.
«Я только что сказал, что не хочу использовать плагин»: ОК, никаких проблем. Но я предупреждаю вас, чтобы это было осторожно, если это так. WordPress использует плагины для расширения его функциональности по ряду очень веских причин.
Вы можете добавить дополнительную функциональность с помощью файла functions.php вашей темы, или создать дочернюю тему и добавить в них изменения; однако у этого есть ряд недостатков для типа функциональности, которую вы хотите добавить.
Как правило, если вы ищете, чтобы что-то изменить (да, в данном случае - вы, вы добавляете что-то совершенно новое, что WordPress изначально не предназначалось) - тогда вы должны поместить это в плагин.
Если, с другой стороны, ваши изменения были небольшими и только изменили настройки по умолчанию (например, изменили порядок сортировки постов по умолчанию в цикле) - тогда это было бы прекрасно добавить в файл functions.php вашей темы.
Чтобы добавить к этому - если вы меняли какую-то конкретную тему, вы также добавили бы ее в функции functions.php вашей темы. Кроме того, если вы сами не писали тему, вы должны использовать плагин или создать дочернюю тему.
ОК - спасибо за головы. Теперь дайте мне ответ. Какой бы вариант вы ни выбрали (создание плагина, создание дочерней темы или изменение основной темы) - основные шаги для достижения того, что вам нужно, более или менее одинаковы.
Предполагая, что вы ознакомились с документацией DOMPDF, вы будете знать, что это довольно просто, чтобы получить его порождающие PDF документы:
// EXAMPLE TAKEN FROM https://github.com/dompdf/dompdf
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Кусок кода, который говорит $dompdf->loadHtml('hello world');
, где вы собираетесь хотите ввести свою разметку HTML.
Самый простой вариант для вас на этом этапе - создать шаблон для перехода к функции loadHtml DomPDF. Шаблон будет содержать заголовок и содержание сообщения.
Код, который вы пишете, будет выполнен из экземпляра сообщения, которое вы хотите преобразовать (если вам это неинтересно), я предлагаю взглянуть на WordPress Codex). Ниже приведен пример того, что вы могли бы рассмотреть дела:
// DomPDF will have already been initialised at this point in the code.
// Create a function that DomPDF can reference, for ease.
function grabPost() {
// Hook into loop (don't just copy and paste this. Read the codex!)
global $post;
// Creating a really simple template to pass to DomPDF
$title = '<h1>'.$post->post_title.'</h1>';
$content = '<article>'.$post->post_content.'</article>';
$passing = $title.$content;
return $passing;
}
// Pass our generated template into DomPDF
$dompdf->loadHtml(grabPost());
// Rendering PDF and outputting to browser happens below this line
Если вы прочитали все это и теперь думаю, что «я действительно путают», я бы посоветовал потратить некоторое время отрабатывает на знание как структурируется WordPress. Потратьте немного времени и экспериментируйте.
Надеюсь, это поможет :)
Вы хотите эту функциональность в области администрирования или интерфейса? –
@MatteoEnna forntend, поэтому каждый может скачать сообщение в формате PDF – Kierenblade