编程语言
首页 > 编程语言> > PHP-WordPress-通过wp-admin页面的当前过滤器将自定义帖子导出到csv

PHP-WordPress-通过wp-admin页面的当前过滤器将自定义帖子导出到csv

作者:互联网

我正在寻找一种解决方案,以通过wp-admin页面上的当前过滤器将自定义帖子导出为CSV.

例:
如果我在我的自定义帖子的wp-admin页面中被称为“线索”,例如:

mysite.com/wp-admin/edit.php?post_type=lead

现在,我进行了一些筛选,例如选择数据和特定术语形式的分类法,并得到了以下内容:

mysite.com/wp-admin/edit.phps\u0026amp;post_status=all\u0026amp;post_type=lead\u0026amp;action=-1\u0026amp;m=201607\u0026amp;companies=check-point\u0026amp;filter_action=Filter\u0026amp;paged=1\u0026amp;action2=-1

现在,我正在寻找一种方法来获取此结果并将其导出为CSV-通过添加按钮/链接-“导出到csv”

有一些“导出到csv” wp插件,但是它们都迫使您转到其他页面并再次进行过滤,这对我们在此项目中不是一个好的解决方案.

谢谢!

解决方法:

我的解决方案基于以下代码:

https://github.com/mithusree/wp-simple-phpexcel-export/blob/master/wp-simple-phpexcel-export.php

在这个很棒的库中的用法:
http://phpexcel.codeplex.com

我的网址现在看起来像这样:

mysite.com/wp-admin/edit.php?post_status=all\u0026amp;post_type=lead\u0026amp;m=0\u0026amp;start_date=2016-07-04\u0026amp;end_date=2016-08-03\u0026amp;no_feat_img\u0026amp;companies=check-point\u0026amp;filter_action=筛选和分页= 1

在表单的第109行上,我剪切了代码并将其移至function.php,将此表单包装在函数上,仅在wp-admin中调用它,导致存档页面并将值从url推送至表单:

    add_action( 'admin_notices', 'export_btn' );
function export_btn() {
    global $typenow;
    if ($typenow == 'lead') {

        global $_GET;
        $start_date = $_GET[start_date];
        $end_date = $_GET[end_date];
        $company = $_GET[companies];

        ?>

        <div class="wrap alignright">
            <form method='get' action="admin.php?page=spee-dashboard">
                <input type="hidden" name='page' value="spee-dashboard"/>
                <input type="hidden" name='noheader' value="1"/>
                <input type="hidden" name='start_date' value="<?php echo $start_date ?>"/>
                <input type="hidden" name='end_date' value="<?php echo $end_date ?>"/>
                <input type="hidden" name='company' value="<?php echo $company ?>"/>
                <input style="display:none" type="radio" name='format' id="formatCSV" value="csv" checked="checked"/>
                <input type="submit" name='export' id="csvExport" value="Export"/>
            </form>
        </div>

        <?php
    }
}

在第45-50行中,根据我的网址编辑了mysql查询:

$start_date = $_GET['start_date'];
$end_date = $_GET['end_date'];
$company = $_GET['company'];

$query = "
            SELECT * FROM wp_posts p
            LEFT OUTER JOIN wp_term_relationships r ON r.object_id = p.ID
            LEFT OUTER JOIN wp_term_taxonomy x ON x.term_taxonomy_id = r.term_taxonomy_id
            LEFT OUTER JOIN wp_terms t ON t.term_id = x.term_id
            WHERE p.post_type = 'lead'
            AND p.post_status =  'publish'
            AND p.post_date BETWEEN '$start_date' AND '$end_date 23:59:59'
            AND t.slug = '$company'
            ORDER BY p.post_date DESC
            ";

标签:export-to-csv,wordpress,php
来源: https://codeday.me/bug/20191118/2028301.html