Wordpress 搜索 returns 所有页面,无论搜索词如何

Wordpress search returns all pages regardless of search term

我创建了一个自定义搜索页面,仅显示网站中两个页面的子页面的结果。问题是,无论搜索词是什么,它 returns 这两个页面下的所有页面。对于任何搜索词,它 returns 相同的 200 页

$s=get_search_query();
$args = array(
            's' =>$s
        );

if(isset($_GET['book'])) {
    $b = $_GET['book'];
    $args = array(
        'post_type'       => 'page',
        'posts_per_page'  => -1,
        'post_parent__in' => array(7253, 9859),
        'sentence'        => true,
        'exact'           => true,
        'order'           => 'ASC',
        'orderby'         => 'relevance',
    );
    $parent = new WP_Query( $args );
    if ( $parent->have_posts() ) : ?>

if(isset($_GET['book'])) { 检查搜索是否应该只通过这两个页面。

我在这里错过了什么?

问题是您正在覆盖 args 数组。

使用以下代码:

$s=get_search_query();


if(isset($_GET['book'])) {
    $b = $_GET['book'];
    $args = array(
        'post_type'       => 'page',
        'posts_per_page'  => -1,
        'post_parent__in' => array(7253, 9859),
        'sentence'        => true,
        'exact'           => true,
        'order'           => 'ASC',
        'orderby'         => 'relevance',
        's'               => $s
    );
    $parent = new WP_Query( $args );
    if ( $parent->have_posts() ) : ?>