WordPress的:根据自定义字段显示未来事件和按日期排序
问题描述:
我有一个自定义内容类型(事件),在该类型中我有一个自定义日期字段,名称:'日期'。在我的模板中,我正在运行WP_Query以返回事件列表。我想只收到将来的事件(根据我的习惯'日期'字段),然后按相同的字段排序。WordPress的:根据自定义字段显示未来事件和按日期排序
我曾尝试以下,但它只是返回不论日期
$today = date('d M, y');
$args = array (
'post_type' => 'event',
'meta_query' => array(
array(
'key' => 'date',
'value' => $today,
'compare' => '>',
'type' => 'CHAR',
),
),
'meta_key' => 'date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
作为一个说明在系统中所有的“事件”的名单,如果我更换类型从“CHAR”到' DATE”我没有得到任何结果返回...
答
试试这个:
的functions.php
function custom_unixtimesamp ($post_id) {
if (get_post_type($post_id) == 'events') {
$startdate = get_post_meta($post_id, 'event_date_begins', true);
if($startdate) {
$dateparts = explode('/', $startdate);
$newdate1 = strtotime(date('d.m.Y H:i:s', strtotime($dateparts[1].'/'.$dateparts[0].'/'.$dateparts[2])));
update_post_meta($post_id, 'unixstartdate', $newdate1 );
}
}
}
add_action('save_post', 'custom_unixtimesamp', 100, 2);
然后查询
$today = time();
$args = array(
'post_type' => 'events',
'post_status' => 'publish',
'posts_per_page' => '10',
'meta_query' => array(
array(
'key' => 'unixstartdate',
'compare' => '>=',
'value' => $today,
)
),
'meta_key' => 'event_date_begins',
'orderby' => 'meta_value',
'order' => 'ASC',
'paged' => (get_query_var('paged') ? get_query_var('paged') : 1),
);
我觉得这是更好地张贴在这个问题:http://wordpress.stackexchange.com – Siyah
公允评论!分类 - 谢谢 – Kev