PRE_GET_POST与自定义字段的比较不起作用

时间:2016-01-02 作者:Kevin Mamaqi

我在函数中得到了以下代码。php。几个月前,它奏效了(或者至少看起来是这样),但现在不行了,我也不知道发生了什么。

// ***************************
// ********   Pre get posts para eventos
add_action( \'pre_get_posts\', \'custom_post_type_archive_eventos\' );

function custom_post_type_archive_eventos( $query ) {

if( $query->is_main_query() && !is_admin() && is_post_type_archive( \'evento\' ) ) {

        $today = current_time(\'Ymd\');

        $query->set( \'posts_per_page\', \'-1\' );
        $query->set( \'meta_key\', \'fecha_del_evento\' );
        $query->set( \'orderby\', \'meta_value\' );
        $query->set( \'order\', \'ASC\' );
        $query->set( \'suppress_filters\', \'true\' );
        $query->set( \'meta_query\', array(
            array(
                  \'key\' => \'fecha_del_evento\',
                  \'compare\' => \'>=\',
                  \'value\' => \'$today\'
            )
      ));
    }
}
现在,代码不起作用,11月份发生的事件也不起作用。URL为http://www.wildlionrecords.com/en/tours/ 我不知道发生了什么。

请注意,我使用以下代码来显示日期,但它在数据库中按Ymd排序。

<?php 
                  if(get_field(\'fecha_del_evento\'))
                  {
                    $datetime = DateTime::createFromFormat(\'Ymd\', get_field(\'fecha_del_evento\'));
                    $fecha_dia = $datetime->format(\'d\');
                    $fecha_mes = $datetime->format(\'m\');
                    $fecha_year = $datetime->format(\'Y\');
                  }            
                ?>
                <?php echo $fecha_dia; ?>/<?php echo $fecha_mes; ?>/<?php echo $fecha_year; ?>

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

PHP将单引号内的所有内容作为字符串处理,因此您的代码无法按预期工作。

您应该从中删除引号

$today 在里面meta_query

和来自

true 在里面suppress_filters

相关推荐

WPQuery Date and ACF

我正在创建一个查询,需要按ACF日期字段进行筛选。在数据库中(wp\\u post\\u meta table中)的值如下:MM/DD/YYYY我有几个房间,在date\\u available\\u from字段中的值为:2021 06月01日2021 08月21日2021 08月31日2021 09月06日2021 07月30日2021 11月31日2021 12月31日ul>然后我像这样进行查询:$args[1] = array( \'posts_per_page\' => -1