使用内置WP函数获取数据通常是一种更好的方法。它的性能更高,而且在安全方面更可取,因为您使用的是预构建的查询,而不是构建自己的查询。
在插件中,您可以使用以下内容:
<?php
// Get all published CPTs
$allEvents = get_posts(array(
\'post_type\' => \'ajde_events\',
\'post_status\' => \'publish\',
\'numberposts\' => -1
));
// If any were found
if($allEvents) {
// Open/create your csv (your code here)
// Loop through all CPTs and grab postmeta
foreach($allEvents as $event) {
$meta = get_post_meta($event);
// Save the postmeta with the post object
$event->evcal_location = $meta[\'evcal_location\'];
$event->evcal_srow = $meta[\'evcal_srow\'];
// Add the full post object, with postmeta, to an array
$fullData[] = $event;
}
// Reset the query
wp_reset_postdata();
// Save to the csv and close it (your code here)
}
?>
将此代码放在何处取决于您希望插件如何工作。也许您想要创建一个管理屏幕,用户可以在其中手动按下按钮下载CSV,或者您想要一个每天自动构建CSV并通过电子邮件发送文件的cron作业。