Wp查询日期之间的帖子,但任何年份

Posted

技术标签:

【中文标题】Wp查询日期之间的帖子,但任何年份【英文标题】:Wp query posts between dates, but any year 【发布时间】:2020-04-06 13:51:53 【问题描述】:

我正在使用 ACF pro 并且需要查询具有某些特殊 ACF 字段特定值的帖子。 但我也需要获得任何年份的帖子,但日期应该在今天和从今天起 30 天之间。我不能使用静态月份编号,因为如果在第 1 天发布帖子,则无法提前找到足够的内容。 这是我的初始查询不起作用。如果只获取特定的年份和月份,它就可以工作,但只能获取该日期的帖子。

//$date_month_advance_month = ... month number of today + 30 days
//$date_month_advance_day= ... day number of today + 30 days
    // args
    $args = array(
        'post_type'     => 'my_post_type',
        'posts_per_page'=> -1,
        'meta_key'      => 'status',
        'meta_value'    => 'accepted',
        'date_query' => array(
         'compare'   => 'BETWEEN',
                 array(
                     'month' => $date_today_month,
                     'day'   => $date_today_day,
                 ),
                array(
                    'month' => $date_month_advance_month,
                    'day'   => $date_month_advance_day,
                ),
            ),
    );

【问题讨论】:

【参考方案1】:

您可以创建自定义query。我很快做了一个,测试了日期,但没有测试自定义字段status,因为我没有它。将my_post_type 替换为您的帖子类型名称。

global $wpdb;

$query = "
SELECT * FROM $wpdb->posts as p
LEFT JOIN $wpdb->postmeta as pm
ON pm.post_id = p.ID
WHERE p.post_type = 'my_post_type'
AND pm.meta_key = 'status'
AND pm.meta_value = 'accepted'
AND REPLACE(SUBSTRING(p.post_date, 6, 10), '-', '') BETWEEN %s AND %s
GROUP BY p.ID
";

// Should replace 0301 and 0331 by variables (date('mO1') and date('m31') for example), I let you handle this.
$prepared_query = $wpdb->prepare($query, array('0301', '0331'));

$result = $wpdb->get_results($prepared_query);

foreach($result as $r) 
  $cs_post = get_post($r->ID);

  echo '<p>';
  echo get_the_title($cs_post->ID) .'<br>';
  echo get_the_date('Y-m-d', $cs_post->ID) .'<br>';
  echo '</p>';


不确定这是否是正确的方法,但它有效。

【讨论】:

谢谢! 123456

以上是关于Wp查询日期之间的帖子,但任何年份的主要内容,如果未能解决你的问题,请参考以下文章

围绕特定日期但年份不断变化的访问查询[关闭]

text 查询旧帖子并更新其日期字段。需要wp-cli-restful软件包(https://wp-cli.org/restful/)。

SQL查询选择年份在两个日期之间的行

SQL Select 查询以选择日期之间的数据,其中从日期月份高于日期月份和年份差异>1

Wordpress - 存档页面:按年份列出帖子

wp查询分页和类别