Как мне обработать записи и экспортировать их как CSV перед выводом? - PullRequest
1 голос
/ 09 мая 2019

Я пытаюсь экспортировать как CSV список сообщений нестандартного типа прямо из панели инструментов Wordpress (edit.php). Это мой код:

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, Wordpress по какой-то причине перенаправляет меня на веб-интерфейс, на страницу 404. Почему это так?

1 Ответ

0 голосов
/ 27 мая 2019

Это решило это:

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

Я не совсем уверен, почему.Кажется, здесь есть какая-то механика перенаправления в Wordpress, и я не совсем понимаю, как она работает.Тем не менее, тестирование для основного запроса, is_main_query(), было пропущено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...