【问题标题】:Export Wordpress page to CSV from front end从前端将 Wordpress 页面导出为 CSV
【发布时间】:2023-04-05 01:06:01
【问题描述】:

我正在寻找一个包含部分页面内容的 Wordpress 插件 - 例如价目表 - 并将其导出为 CSV。所以我可以在用户可以点击的页面上放置一个“下载 CSV”链接。

如果您知道是否有插件可以执行此操作,或者可以轻松修改以执行此操作,我将不胜感激。

【问题讨论】:

  • 寻求建议或让我们为您找到一些东西是题外话。当您已经有一些代码可以使用时,您可以自行找到它并寻求帮助。
  • 在发布这个问题之前,我花了好几个小时在谷歌上搜索解决方案并测试了一堆插件 - 但空手而归。我在这里发帖是因为我希望其他处理过类似问题的人能够指出我正确的方向。
  • Jay's example 可以转换为插件:按钮会打开一个新窗口并传递其自己的 URL,脚本会读取页面 ($url = $_GET['uri']) 并导出。
  • 我同意@brasofilo,但是,Jay 的示例需要重新设计,它有一些小缺陷,例如 - 它只能导出具有固定id 属性的表和其他小问题。
  • 我设法将 dinetweb 示例重新设计为自定义插件。可能不是最强大的插件,但它确实有用。谢谢你们的帮助:)

标签: php csv plugins wordpress


【解决方案1】:

这是我写的代码,希望能帮助别人:

add_action('wp', 'generate_csv');
function generate_csv()
{
    if ('csv' == (isset($_GET['format']) ? $_GET['format'] : null)) {
        $calendar_shortcode_id = get_field("calendar_shortcode_id");
        if($calendar_shortcode_id) {
            global $post;
            $shortcode = "[google-calendar-events id='$calendar_shortcode_id' type='list']";
            $html = do_shortcode($shortcode);
            $doc = new DOMDocument(); $doc->loadHTML($html);
            $titles = array();
            $table=$doc;
            $a=0;
            $delim = "";
            $csv="";
            $num_cols=5;
            foreach($table->getElementsByTagName('span') as $td) {
            if($a==0) {$delim = "";}
            if($a<$num_cols) { $csv .= $delim . '"' . $td->nodeValue. '"';
            $delim = ",";
            }
            if($a==($num_cols-1)) { $csv .= "\n";$a=-1;}
            $a++;
            }
            header('Content-Encoding: UTF-8');
            header("Content-type: text/csv; charset=utf-8");
            header("Content-Disposition: attachment; filename=".$post->post_name.".csv");
            echo "\xEF\xBB\xBF"; // UTF-8 BOM
            echo utf8_decode($csv);
            exit;
        }
    }
}

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    相关资源
    最近更新 更多