如何允许用户(订阅者)将选定的帖子下载到单个PDF中?(已解决)

时间:2012-10-15 作者:zilj

我目前有一个会员区供订阅者使用。我已经为用户设置了“收藏”帖子的功能,并将其添加到他们选择的自定义文件夹中。一旦他们在特定文件夹中添加了一些帖子,我希望他们能够单击下载,将这些文件夹中的帖子整理成pdf。不一定要完美,只是暂时要有功能。

我找到了一个插件Kalin的PDF创建站,它有一个额外的后端功能(工具),可以很好地做到这一点,甚至可以在发布之前对帖子进行重新排序。但我想知道我是否能为前端用户提供这个选项。

有人知道这是否可以做到吗?

如果有人也有其他的解决方案,那就开放给他们。

下面是一个帮助截图。模糊的标题是3个独立的帖子标题。当他们点击下载时,我想把这3个文件编译成pdf?有什么建议吗?

enter image description here

2 个回复
最合适的回答,由SO网友:zilj 整理而成

我已经设法回答了我自己的问题。

如果有人有simular请求,我现在已经实现了一个非常基本的修复。

我决定下载我能找到的最简单的post2pdf插件。我决定WP Post to PDF 由Neerav Dobaria根据TCPDF脚本编写。代码过于简单和整洁,因此我可以轻松地进行自定义。

我决定将post ID作为url参数传递给我想要的post ID列表(?format=pdf&pids=10,15,21,30), 然后在插件的核心php文件(/wp post to pdf/wp post to pdf.php)中,我列出了参数,并使用一个简单的条件将ID放入核心:


    // wp-post-to-pdf/wp-post-to-pdf.php

    [line 124]
    if ($_GET[\'pids\']) {
        $pid_list = $_GET[\'pids\'];
    } else {
        return false; 
    }

    ...

    [line 144]
    // Add the pids as a secondary argument
    if ($includeCache and !in_array($post->ID, $excludeThisCache)){
        $this->generate_pdf_file($pid_list, **$pid_list**);
    } elseif (!$includeCache and in_array($post->ID, $excludeThisCache)){
        $this->generate_pdf_file($pid_list, **$pid_list**);
    } else {
        if (!file_exists($filePath)) {
            $this->generate_pdf_file($pid_list, **$pid_list**);
        }
    }

    ...

    [line 256]
    // Separate the string into an array
    $pid_list = explode(\',\', $pid_list);

    ...

    [line 321]
    // Add a for each to create a new page for each post id in the list. 
    foreach($pid_list as $pid){
        $pdf->AddPage();
        // Created a new variable for the pids.
        $post_data = get_post($pid); 

        ...

    }
对于所有实例,其中$post->parameter 存在于这个新的foreach中,只需将其更改为新的数组变量$post_data->parameter. 然后相应地更改插件的设置。

简单!;)

SO网友:Damien

这可能是一个非常复杂的领域。。因为

您的用户可以在浏览器中按Ctrl-P,许多用户已经发送到PDF。这比许多PDF插件都要好,因为用户正在“打印到PDF”他们正在查看的屏幕

PDF插件可能需要大量定制,以包括或排除边栏、横幅或其他图像。但也有客户/前端插件,如HTML2PDF 这对于单篇文章“下载”很有用。

您也可以自己做,因为PHP有许多用于HTML2PDF的库。。。最好使用的库之一是wkhtmltopdf 在您的服务器上运行

要允许客户选择多篇文章,然后“单击下载”到PDF,您需要使用wkhtmltopdf和/或其他PHP库开发自己的解决方案

结束

相关推荐

get_posts inside cron

Edited to rewrite my question我会尽量说清楚,因为我需要尽快解决这个问题。我禁用了WordPress的cron,并在我的服务器上添加了一个真正的cron作业来调用wp cron。php每天。但是,我调用的函数不起作用。代码执行似乎停止于get_posts, 如果我尝试使用WP_Query 班没有错误消息,之后的任何代码都不会执行。当我不添加时numberposts, 但它确实给了我5篇文章,这是numberposts的默认值。示例: $posts = get_posts( ar