1

我有一个名为的字段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_titlewp_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();
4

0 回答 0