这些较大的插件通常“太酷了”,无法使用post\\u meta/post\\u custom-这就是为什么您无法通过存储额外信息的常规插件方式检索数据。在bleak的ai1ec开发文档中,我找不到任何函数来简化您要完成的任务(尽管如果浏览的时间足够长,它们确实存在于源代码中)。
你要找的桌子是wp_ai1ec_events
(复数。非wp_ai1ec_event
).
使用像phpmyadmin这样的工具是一种很好的方法,可以先构建查询,然后在php代码中完成工作。
我找到了end
日期信息如下:
add_action(\'init\',\'myplugin_get_alic_enddate\');
function myplugin_get_alic_enddate() {
global $wpdb;
$HitID = 537; // wtv
$query = "SELECT end FROM `{$wpdb->prefix}ai1ec_events` WHERE `post_id` = {$HitID}";
$event = $wpdb->get_row($query);
//echo $event->end;
//echo date(get_option(\'date_format\'),$event->end);
}
这对全天事件或没有设置结束日期的事件(显然)没有任何作用。
UPDATE
在另一个答案中反映OP发布的代码
add_filter(\'relevanssi_hits_filter\', \'rlv_remove_expired\');
function rlv_remove_expired($hits) {
global $wpdb;
$non_expired = array();
$now = time();
foreach ($hits[0] as $hit) {
$HitID = $hit->ID;
$Result_PostType = get_post_type($HitID);
if( $Result_PostType == \'ai1ec_event\' ){
echo "<pre>Made it to: if(Result_PostType==\'ai1ec_event\')</pre>";
$query = "SELECT end FROM {$wpdb->prefix}ai1ec_events WHERE post_id = {$HitID}";
$row = $wpdb->get_row($query);
if($wpdb->last_error !== \'\') {
echo "<pre> MYSQL ERROR:\\n";
$wpdb->print_error();
echo "</pre>";
}
$end_date = $row->end;
echo "<pre>In Function.\\n End Date: ".$end_date."\\n HitID: ".$HitID."</pre>";
if($end_date >= $now)
$non_expired[] = $hit;
} else {
$end_date = 0;
$non_expired[] = $hit;
}
echo "<pre>Hit ID: ".$HitID."\\n End Date: ".$end_date."\\n Now: ".$now."\\n Post Type: ".$Result_PostType."</pre>";
} // end foreach
$hits[0] = $non_expired;
return $hits;
}