我有一个名为的字段post_title
,它存在于wp_posts
表中和 2 个自定义字段 -production_year
并且movie_description
- 这 2 个自定义字段位于wp_postmeta
表内。
我想movies
在存档页面上过滤自定义帖子类型的帖子,例如:www.mydomain.com/movies?search_text=Superman
下面的代码functions.php
不适用于post_title
,它只搜索movie_description
字段中的文本。是因为$query->set('meta_query')
仅适用于表格中的自定义帖子字段而不适用于表格wp_postmeta
中的标准帖子字段吗?post_title
wp_posts
函数.php:
<?php
class searchMovies{
function __construct(){
add_action( 'pre_get_posts', array( $this, 'filterquery' ) );
}
function filterquery( $query ){
global $pagenow;
global $typenow;
// THIS DOES NOT SEEM TO WORK HERE ↓↓↓
if ( is_archive()
&& $query->is_main_query()
&& isset( $_GET['search_text'] )
&& !empty( $_GET['search_text'] )
) {
$query->set(
'meta_query',
array(
'relation' => 'OR',
array(
'key' => 'post_title',
'value' => $_GET['search_text'],
'compare' => 'LIKE'
),
array(
'key' => 'movie_description',
'value' => $_GET['search_text'],
'compare' => 'LIKE'
)
)
);
}
return $main_query;
}
}
new searchMovies();