【问题标题】:How do I process posts and export them as CSV before output?如何在输出前处理帖子并将其导出为 CSV?
【发布时间】:2019-05-28 04:13:48
【问题描述】:

我正在尝试直接从 Wordpress 的仪表板 (edit.php) 将自定义类型的帖子列表导出为 CSV。到目前为止,这是我的代码:

add_filter('pre_get_posts', 'yri_export_csv');

function yri_export_csv($query) {
    if(is_admin() && $query->get('post_type') == 'kohde' && isset($_GET['export_csv'])) {
        $kunta = $query->get('kunta');
        $osasto = $query->get('osasto');
        $time = time();

        $args = $query->query;
        $posts = get_posts($args);

        header('Content-type: application/csv');
        header("Content-Disposition: attachment; filename=kohteet_{$kunta}_{$osasto}_{$time}.csv");

        foreach ($posts as $post) {
            // Do CSV stuff here
        }

        die();
    }
}

问题是当我使用get_postsnew WP_Query 查询帖子时,Wordpress 出于某种原因将我重定向到前端,到 404 页面。为什么这样做?

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    这解决了它:

    ...
    if(is_main_query() && is_admin() && $query->get('post_type') == 'kohde' && isset($_GET['export_csv'])) {
    ...
    

    我不确定为什么。这里的 Wordpress 中似乎有某种重定向机制,我并不完全理解它是如何工作的。但是,缺少对主要查询 is_main_query() 的测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 2020-04-20
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 2011-04-06
      相关资源
      最近更新 更多