使用自定义字段日期在 Wordpress 中隐藏过去的帖子

Hide past posts in Wordpress with custom field date

我希望 Wordpress 中的博客帖子按自定义字段中设置的日期排序,并在该日期过后隐藏。 我进行了排序,但不确定如何进一步隐藏帖子。自定义字段中的日期格式为 2022-01-01。

add_action( 'pre_get_posts', 'wpse183601_filter_category_query' );
function wpse183601_filter_category_query( $query ) {
 if( is_front_page() && !is_admin() && $query->is_main_query() ) {
 
 $meta_query = array(
            array(
                'meta_key'  => 'event_date',
                'value'   => date('Y-m-d'),
                'type'    => 'DATE',
                'compare' => '>='
            )
        );
        
        $query->set( 'orderby','meta_value' );
        $query->set( 'meta_key','event_date' );
        $query->set( 'order','ASC' );
    }
}

您需要将 $meta_query 变量传递给 meta_query 参数。试试下面的代码。

add_action( 'pre_get_posts', 'wpse183601_filter_category_query' );
function wpse183601_filter_category_query( $query ) {
    if( is_front_page() && !is_admin() && $query->is_main_query() ) {
        $meta_query = array(
            array(
                'meta_key' => 'event_date',
                'value'    => date('Y-m-d'),
                'type'     => 'DATE',
                'compare'  => '>='
            )
        );
        
        $query->set( 'orderby', 'meta_value' );
        $query->set( 'meta_key', 'event_date' );
        $query->set( 'order', 'ASC' );
        $query->set( 'meta_query', $meta_query );
    }
}