从WP_Query中的日期元查询中获取月份

时间:2018-08-28 09:10:50

标签: php wordpress

我将ACF Pro存储的日期类型存储在自定义元“ event_date”中,并且希望通过查询按月过滤事件。数据存储在

我知道我需要像这样使用meta_query数组:

$args['meta_query'] = array(
    array(
        'key' => 'event_date',
        'value' => ?,
        'compare' => '=',
        'type' => 'DATE'
    )
);

但是meta query允许与完整日期进行比较。如何比较month变量(数字1到12)是否与event_date元月份相同?

谢谢

1 个答案:

答案 0 :(得分:1)

假设您使用的是ACF的默认日期“保存格式”,即“ yymmdd”。请尝试以下“元查询”。

月份:

<bean id="viewResolver" class="org.springframework.mobile.device.view.LiteDeviceDelegatingViewResolver">
    <constructor-arg>
        <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    </constructor-arg>
    <property name="mobilePrefix" value="mobile/" />
    <property name="enableFallback" value="true"/>

</bean>

全年:

$month = date('m'); // Change to static if not current month (should be 2 digits)
$start_date = date('Y'.$month.'01'); // First day of the month
$end_date = date('Y'.$month.'t'); // Last day of the month

$args['meta_query'] = array(
    array(
        'key' => 'event_date',
        'value' => array($start_date, $end_date),
        'compare' => 'BETWEEN',
        'type' => 'DATE'
    )
);
  

注意:您也可以使用$year = date('Y'); // Change to static if not current year (should be 4 digits) $start_date = date($year.'0101'); // First day of the year $end_date = date($year.'1231'); // Last day of the year $args['meta_query'] = array( array( 'key' => 'event_date', 'value' => array($start_date, $end_date), 'compare' => 'BETWEEN', 'type' => 'DATE' ) ); 代替'type' => 'DATE'