我已经使用my-meta-box-class plugin它带有内置的“日期”类型的元框输入。我很难按日期订购我的自定义帖子。此插件中的日期是否存储为strotime()?如果没有,我怎样才能稍微修改插件,让它这样做。这有必要吗?是否有一种更简单的方法可以使用插件中已有的内容在我的自定义帖子类型中排序事件?
使用My-Meta-Box-Class插件,‘date’值是如何存储的?
2 个回复
SO网友:Sameer Joshi
“oderby”参数的“date”值不会按照元框中指定的日期对帖子进行排序。它将根据帖子发布的日期对帖子进行排序。
如果需要从元框中按日期排序(对于自定义字段),则可以使用自定义字段参数(http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters)
SO网友:Bainternet
它不是一个真正的插件,它更像是一个库/类。插件文件只是作为演示来展示的。
任何为什么在调用日期字段时,可以将格式设置为如下时间戳:
$my_meta->addDate($prefix.\'date_field_id\',array(\'name\'=> \'My Date \', \'format\' =>\'@\'));
您可以看到有效格式的列表here. 更好的是,您可以使用php的strotime函数定义自己的验证函数,将常规(文本日期)存储为时间,如下所示:
//create a class named at_Meta_Box_Validate with a method of validation
if (!class_exists(\'at_Meta_Box_Validate\')){
class at_Meta_Box_Validate{
public function date_str_to_time($new){
return strtotime($new);
}
}
}
然后在addDate函数中调用该函数,如下所示:$my_meta->addDate($prefix.\'date_field_id\',array(\'name\'=> \'My Date \',\'validate_func\' => \'date_str_to_time\'));
结束