查询函数中的自定义分类以创建CSV文件

时间:2018-12-09 作者:Jesper Kahr Nielsen

使自定义分类查询在此函数中工作时出现问题。$筛选器中填充了数据,但get\\u posts()不使用它?查询在没有tax\\u查询的情况下工作,并且有:具有正确分类法的自定义帖子(列表)。。。想要我失踪吗?

add_action( \'restrict_manage_posts\', \'add_export_button\' );
function add_export_button() {
    $screen = get_current_screen();

if (isset($screen->parent_file) && (\'edit.php?post_type=certificate\'==$screen->parent_file)) {
        ?>
        <input type="submit" name="export_all_posts" id="export_all_posts" class="button button-primary" value="Export All Posts">
        <script type="text/javascript">
            jQuery(function($) {
                $(\'#export_all_posts\').insertAfter(\'#post-query-submit\');
            });
        </script>
        <?php
    }
}

add_action( \'init\', \'func_export_all_posts\' );
function func_export_all_posts() {
    if(isset($_GET[\'export_all_posts\'])) {
        if(isset($_GET[\'list\'])) {
            $filter =  strval($_GET[\'list\']);
        };
        $arg = array(
                \'post_type\' => \'certificate\',
                \'post_status\' => \'publish\',
                \'posts_per_page\' => -1,
                \'tax_query\' => array(
                    array(
                        \'taxonomy\' => \'list\',
                        \'field\'    => \'slug\',
                        \'terms\'    => $filter ,
                    )
                    ),
            );

        global $post;
        $arr_post = get_posts($arg);

        if ($arr_post) {

        header(\'Content-type: text/csv\');
        header(\'Content-Disposition: attachment; filename="wp.csv"\');
        header(\'Pragma: no-cache\');
        header(\'Expires: 0\');

        $file = fopen(\'php://output\', \'w\');

        fputcsv($file, array(\'Post Title\', \'URL\'));

            foreach ($arr_post as $post) {
                setup_postdata($post);
                fputcsv($file, array(get_the_title(), get_the_permalink()));
            }

            exit();
        }
    }
}

2 个回复
最合适的回答,由SO网友:Jesper Kahr Nielsen 整理而成

问题是我使用工具集插件生成分类法,这导致了一些优先级混淆。将此添加到我的函数中。php解决了这个问题:

remove_action(\'init\', \'func_export_all_posts\');
add_action(\'init\', \'func_export_all_posts\', 99);
参考号:https://toolset.com/forums/topic/wp_query-does-not-work-with-taxonomy-at-the-backend

SO网友:Tim Hallman

我很确定你只需要传递一个数组terms 像这样:

$arg = array(
     \'post_type\' => \'certificate\',
     \'post_status\' => \'publish\',
     \'posts_per_page\' => -1,
     \'tax_query\' => array(
          array(
               \'taxonomy\' => \'list\',
               \'field\'    => \'slug\',
               \'terms\'    => array($filter)
           )
      ),
);

相关推荐

Pull specific data from CSV

我正在建立一个网站,客户有特定的要求。开源应用程序有。提供大量数据的csv文件。他们想从csv中提取一些字段,并将其放在wordpress网站上。有可能做那样的事吗?他们希望自动化我将链接放置到CSV的过程,选择它将提取的字段,然后这些字段显示在网站上。此外,当CSV更新时,数据也将更新。有可能这样吗?