如何解决如何从 WordPress 帖子图像生成 PDF?
我正在尝试向自定义帖子类型单页添加一个按钮,然后单击该按钮后,它应该能够生成包含帖子内图像的 PDF。我正在使用自定义主题,我想出了一个接近的解决方案,但出了点问题,我真的不知道如何正确地做到这一点。
这就是我在前端添加按钮的方式。
这是我使用过的按钮代码,我在 name 属性中使用了 me_post_pdf
函数。
<form method="POST">
<input type="submit" value="Download" class="btn1">
<input type="hidden" name="me_post_pdf" value="submitted">
</form>
在我的自定义插件functions.php文件中
use Dompdf\Dompdf;
use Dompdf\Options;
class MyPlugin {
private $postId;
public function __construct($wp_query) {
if ($wp_query && $wp_query->post) {
$this->postId = $wp_query->post->ID;
}
}
public function getPostId() {
return $this->postId;
}
public function get_car_photos( $post_id,$post_type ){
global $wpdb;
$photos = $wpdb->get_results( "SELECT * FROM wp_wj_photos WHERE post_id = $post_id and post_type = '$post_type' and is_delete = 0 ORDER BY is_main DESC");
$photos = json_decode(json_encode($photos),true);
foreach ($photos as $key => &$photo) {
$photo['photo_url'] = AT_UPLOAD_URI_THEME . '/' . $post_type . '/' . sprintf('%02s',substr( $photo['id'],-2,2) ) . '/';
$photo['photo_name'] = $photo['id'] . '.jpg';
}
return $photos;
}
public function add_button() {
echo '<form method="POST">';
echo '<input type="submit" value="Download" class="btn1">';
echo '<input type="hidden" name="me_post_pdf" value="submitted">';
echo '</form>';
}
public function process_pdf($content) {
global $wp;
$options = new Options();
global $wp_query;
$myPlugin = new MyPlugin($wp_query);
$options->set('isRemoteEnabled',true);
$dompdf = new Dompdf($options);
foreach ($content as $key => $con) {
$html = '<img src="'.$con['photo_url'].'original/'.$con['photo_name'].'" alt="" height="100%" width="100%">';
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4','portrait');
$dompdf->render();
$dompdf->stream('test.pdf');
}
}
add_action('wp',function () {
global $wp_query;
$myPlugin = new MyPlugin($wp_query);
$myPlugin->add_button();
});
function me_post_pdf()
{
if (isset($_POST['me_post_pdf'])) {
global $wp_query;
$myPlugin2 = new MyPlugin($wp_query);
$content = $myPlugin2->get_car_photos($myPlugin2->getPostId(),'car');
$myPlugin2->process_pdf($content);
}
}
add_action('init','me_post_pdf'); ```
For some reason this doesn't work. I'm using a library called `dompdf` to generate the pdf. Can anyone please guide me?
Thank you
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。