查询元关键字以开头的帖子

时间:2015-02-16 作者:JacobTheDev

我需要找到以当前年份+当前月份(即201502)开始的元键的帖子,但实际值也可以包含该月内的任何一天(即20150214)。

真正棘手的部分是,我正在尝试使用ACF的Reapter和Date Picker字段来实现这一点。如果我要求帖子中包含完整的日期字符串(20150214),我已经让它工作到了可以返回true的程度,但我不知道如何仅在年份和月份这样做。

这是我当前的代码:

// custom filter to replace \'=\' with \'LIKE\'
function my_posts_where($where) {
    $where = str_replace("meta_key = \'show_times_%_date\'", "meta_key LIKE \'show_times_%_date\'", $where);
    return $where;
}
add_filter("posts_where", "my_posts_where");
// get results

$this_month = date("Ym") . "14"; // this doesn\'t work if I remove the . "14"
$the_query = new WP_Query(array(
    "numberposts" => -1,
    "post_type" => "plays_events",
    "meta_query" => array(
        array(
            "key"   => "show_times_%_date",
            "value" => $this_month,
        )
    ),
));
我真的很困惑my_posts_where 但是,我只是从this page.

从本质上讲,我需要弄清楚如何表达“价值”选项$this_month . $any_day.

谢谢

2 个回复
最合适的回答,由SO网友:JacobTheDev 整理而成

I figured it out:

$the_query = new WP_Query(array(
    "numberposts" => -1,
    "post_type" => "plays_events",
    "meta_query" => array(
        array(
            "key"     => "show_times_%_date",
            "value"   => $this_month . "[0-9]{2}",
            "compare" => "REGEXP"
        )
    ),
));
SO网友:David Gard

我相信你所需要做的就是把这一天从你的$this_month 参数并使用LIKE 比较(带尾随符%) 查询值的步骤-

$this_month = date("Ym");
$the_query = new WP_Query(array(
    "numberposts" => -1,
    "post_type" => "plays_events",
    "meta_query" => array(
        array(
            "key"       => "show_times_%_date",
            "value"     => $this_month . "%",
            "compare"   => "LIKE"
        )
    ),
));
查看Custom Field Parameters section in the Class Reference for WP_Query

结束

相关推荐

在jQuery移动返回空白页中搜索

常规序曲:jquery mobile新手,很抱歉代码太长。正在尝试构建我的主题的移动版本。通过放置标题内容、面板和搜索表单轻松开始。在网络日志中搜索请求成功的内容时,返回了正确的数据,url也相应地更改为搜索参数:mysite。php/?s=WordPress但是页面现在是空白的,在inspect elements中除了标题(没有脚本,没有正文)之外什么都没有,我在“network tab”和“console”选项卡中检查了错误-没有找到任何东西。标题页:<div data-role=\"page\