从前端将Wordpress页面导出为CSV

时间:2014-04-28 07:50:04

标签: php wordpress csv plugins wordpress-plugin

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

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

1 个答案:

答案 0 :(得分:0)

这是我写的关于帮助别人的机会的代码:

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;
        }
    }
}