亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP WordPress - 檢查日期是否在過去 30 天內

PHP WordPress - 檢查日期是否在過去 30 天內

PHP
慕雪6442864 2023-08-19 10:50:56
我收到了一個顯示自定義事件的 WordPress 文件。它已設置為根據分配給事件的日期是過去還是將來將事件分為 2 個類別。我被要求做的是添加第三個類別“最近過去”(如果該事件發生在從今天開始的過去 30 天內)。我看過這里的其他答案,比如這個,這讓我覺得我需要使用類似的東西'value' => date('Ymd', strtotime('today - 30 days')),,但如果這是正確的,我將如何阻止“最近過去”的事件也出現在“過去”事件類別中?如果它有幫助,它還使用高級自定義字段作為查詢的一部分,您可以在下面的代碼中看到if ( get_sub_field('show_events') == 'past' ) { 我知道如何在那里添加附加查詢,因此可以修改該if塊以具有額外的查詢。這是我堅持的數組比較。<?php // Date is past                                $meta_query_past = array(  array(    'key' => 'event_date',    'value' => date('Ymd'),    'type' => 'DATE',    'compare' => '<='  ));// Date is future$meta_query_future = array(  array(    'key' => 'event_date',    'value' => date('Ymd'),    'type' => 'DATE',    'compare' => '>='  ));if ( get_sub_field('show_events') == 'past' ) {  $meta_query = $meta_query_past;  $attending = "We attended this event";  $show_events = 'past';  $sort_order = 'DESC';} else {  $meta_query = $meta_query_future;  $attending = "We're attending this event";  $show_events = 'future';  $sort_order = 'ASC';}$args = array(  'post_type' => 'event',  'posts_per_page' => -1,  'order' => $sort_order,  'orderby' => 'meta_value_num',  'meta_key' => 'event_date',  'meta_query' => $meta_query);?>
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

將解決方案發布到我自己的問題,以防萬一它可以幫助任何遇到類似問題的人。


<?php 

// Date is past, but not within the last 30 days

$meta_query_past = array(

  array(

    'key' => 'event_date',

    'value' => date('Ymd', strtotime('-30 days')),

    'type' => 'DATE',

    'compare' => '<'

  )

);

// Date is recent

$meta_query_recent = array(

  'relation' => 'AND',

  // Date is more than date 30 days ago 

  array(

    'key' => 'event_date',

    'value' => date('Ymd', strtotime('-30 days')),

    'type' => 'DATE',

    'compare' => '>='

  ),

  // Date is less than todays date

  array(

    'key' => 'event_date',

    'value' => date('Ymd'),

    'type' => 'DATE',

    'compare' => '<'

  )

);

$meta_query_future = array(

  'relation' => 'OR', 

  // Date is future

  array(

    'key' => 'event_date',

    'value' => date('Ymd'),

    'type' => 'DATE',

    'compare' => '>='

  ),

  // Date is empty

  array(

    'key' => 'event_date',

    'value' => '',

    'compare' => '='

  )

);


if ( get_sub_field('show_events') == 'past' ) {

  $meta_query = $meta_query_past;

  $attending = "We attended this event";

  $show_events = 'past';

  $sort_order = 'DESC';

} elseif ( get_sub_field('show_events') == 'recent' ) {

  $meta_query = $meta_query_recent;

  $attending = "We recently attended this event";

  $show_events = 'recent';

  $sort_order = 'DESC';

} else {

  $meta_query = $meta_query_future;

  $attending = "We're attending this event";

  $show_events = 'future';

  $sort_order = 'ASC';

}


$args = array(

  'post_type' => 'event',

  'posts_per_page' => -1,

  'order' => $sort_order,

  'orderby' => 'meta_value_num',

  'meta_key' => 'event_date',

  'meta_query' => $meta_query

);

?>


查看完整回答
反對 回復 2023-08-19
  • 1 回答
  • 0 關注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號