我正尝试直接从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_posts
或new WP_Query
来查询帖子时,由于某种原因,我将我重定向到了前端,即404页面。为什么这样做呢?
答案 0 :(得分:0)
这解决了它:
...
if(is_main_query() && is_admin() && $query->get('post_type') == 'kohde' && isset($_GET['export_csv'])) {
...
我不确定为什么。这里似乎在Wordpress中有某种重定向机制,但我不完全了解它是如何工作的。但是,缺少对主要查询is_main_query()
的测试。