首页 > 解决方案 > 如何从wordpress搜索结果中排除特定页面?

问题描述

对于每个类别为“事件”的帖子,我只想在 Worpdress 搜索结果中显示今天的事件和下一个事件。这是我的代码,它不起作用。

function du_filter_search($query){
   if ( ! is_admin() && is_category( 'events' ) && $query->is_main_query() && is_search() ) {
        $query->set( 'meta_key', 'endDate' );
        $query->set( 'meta_query', array(
            array(
                'key'     => 'endDate',
                'value'   => date('Y-m-d H:i:s'),
                'compare' => '>=',                
                'type'    => 'DATETIME',
            )
        ) );
   }
}
add_action( 'pre_get_posts', 'du_filter_search' );

请帮忙。谢谢你。

标签: phpwordpress

解决方案


你很亲密。我认为您需要将其更新meta_query为:

function du_filter_search($query){
  if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
    $query->set( 'meta_key', 'endDate' );
    $query->set( 'meta_query', array(
      array(
        'key'     => 'endDate',
        'value'   => date('Y-m-d'),
        'compare' => '>=',                
        'type'    => 'DATE',
      )
    ));
  }
}
add_action( 'pre_get_posts', 'du_filter_search' );

DATE从今天的日期开始使用DATETIME并删除H:i:sfrom。


推荐阅读