WordPress搜索返回重复结果

时间:2018-03-23 02:37:24

标签: php wordpress

我正在处理的WordPress网站上有一个搜索框,它根据输入到搜索中的关键字数量返回一些零星的重复结果。例如,如果我在框中输入关键字“Green Lake”,它将返回Post A两次,Post B返回两次,Post C返回一次或两次。如果我输入“绿湖湖”(三个关键词),它将返回Post A三次,Post B三次,Post C两次或三次。等等。

我想我已将问题缩小到以下代码。有谁可以指出任何明显的东西?我认为它与$ keywords上的foreach循环有关,但我不知道如何修复它。提前谢谢。

if ( isset( $_REQUEST['keywords'] ) && ! empty( $_REQUEST['keywords'] ) ) {

        $filter_posts = [];
        $keywords     = explode( ' ', strtolower( $_REQUEST['keywords'] ) );

        foreach ( $posts as $post ) {

            foreach ( $keywords as $keyword ) {

                // if the keyword is in the title the don't search the post content
                if (
                    strpos( strtolower( $post->post_title ), $keyword ) !== false
                    ||
                    strpos( strtolower( $post->post_content ), $keyword ) !== false
                ) {

                    $filter_posts[] = $post;

                }

            }

        }

        $posts = $filter_posts;

    }

    wp_send_json_success( json_encode( $posts ) );

0 个答案:

没有答案