Wordpress - 通过 wp-admin 页面的当前过滤器将自定义 post 导出到 csv
Wordpress - export custom post to csv by current filter from wp-admin page
我正在寻找通过 wp-admin 页面的当前过滤器将自定义 post 导出到 CSV 的解决方案。
示例:
如果我在自定义 post 的 wp-admin 页面中调用 "leads",如下所示:
mysite.com/wp-admin/edit.php?post_type=lead
现在我制作了一些过滤器,例如 select 数据和特定术语形式的分类法,并得到如下内容:
mysite.com/wp-admin/edit.phps&post_status=all&post_type=lead&action=-1&m=201607&companies=check-point&filter_action=Filter&paged= 1&action2=-1
现在我正在寻找获取此结果并将其导出到 CSV 的方法 - 通过添加 button/link - "export to csv"
有一些 "export to csv" wp 插件,但它们都迫使您转到其他页面并再次制作过滤器,这对我们这个项目来说不是一个好的解决方案。
谢谢!
我的解决方案基于此处的代码:
https://github.com/mithusree/wp-simple-phpexcel-export/blob/master/wp-simple-phpexcel-export.php
在这个伟大的图书馆中的用途:
http://phpexcel.codeplex.com
我的 url 现在看起来像这样:
mysite.com/wp-admin/edit.php?post_status=all&post_type=lead&m=0&start_date=2016-07-04&end_date=2016-08-03&no_feat_img&companies=check-point&filter_action=Filter&paged=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 行中,我根据 url:
编辑了 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
";
我正在寻找通过 wp-admin 页面的当前过滤器将自定义 post 导出到 CSV 的解决方案。
示例: 如果我在自定义 post 的 wp-admin 页面中调用 "leads",如下所示:
mysite.com/wp-admin/edit.php?post_type=lead
现在我制作了一些过滤器,例如 select 数据和特定术语形式的分类法,并得到如下内容:
mysite.com/wp-admin/edit.phps&post_status=all&post_type=lead&action=-1&m=201607&companies=check-point&filter_action=Filter&paged= 1&action2=-1
现在我正在寻找获取此结果并将其导出到 CSV 的方法 - 通过添加 button/link - "export to csv"
有一些 "export to csv" wp 插件,但它们都迫使您转到其他页面并再次制作过滤器,这对我们这个项目来说不是一个好的解决方案。
谢谢!
我的解决方案基于此处的代码:
https://github.com/mithusree/wp-simple-phpexcel-export/blob/master/wp-simple-phpexcel-export.php
在这个伟大的图书馆中的用途: http://phpexcel.codeplex.com
我的 url 现在看起来像这样:
mysite.com/wp-admin/edit.php?post_status=all&post_type=lead&m=0&start_date=2016-07-04&end_date=2016-08-03&no_feat_img&companies=check-point&filter_action=Filter&paged=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 行中,我根据 url:
编辑了 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
";