如何解决Wordpress自定义查询字符串
| 我有一个名为date的元字段,我需要查询该时间戳等于或小于今天的所有记录... <?php
$time = time();
$querystr = \"
SELECT wposts.*
FROM $wpdb->posts wposts,$wpdb->postmeta wpostmeta
WHERE wpostmeta.meta_key = \'date\'
AND wpostmeta.meta_value <= $time
\";
$pageposts = $wpdb->get_results($querystr,OBJECT);
?>
解决方法
您可以尝试这样的事情:
$today = date(\'Y-m-d\');
$querystr = \"
SELECT *
FROM wp_posts,wp_postmeta
WHERE wp_posts.ID = wp_postmeta.post_id
AND wp_postmeta.meta_key = \'date\'
AND wp_posts.post_status = \'publish\'
AND wp_posts.post_type = \'post\'
AND STR_TO_DATE(wp_postmeta.meta_value,\'%Y/%m/%d\') <= \'$today\'
ORDER BY STR_TO_DATE(wp_postmeta.meta_value,\'%Y/%m/%d\') ASC
\";
$custom_loop = $wpdb->get_results($querystr,OBJECT);
在que查询的最后两行中,您必须指定日期的格式(在自定义字段\“ date \”中)。例如,如果您的自定义\“日期\”字段的格式为dd / mm / YYYY,则可以使用:
AND STR_TO_DATE(wp_postmeta.meta_value,\'%d/%m/%Y\') <= \'$today\'
ORDER BY STR_TO_DATE(wp_postmeta.meta_value,\'%d/%m/%Y\') ASC
$today
日期必须为Y-m-d
,因为它是默认的时间格式,用于mysql进行比较。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。