Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 使用search.php自定义搜索结果?此外,wp查询分页不起作用_Wordpress - Fatal编程技术网

Wordpress 使用search.php自定义搜索结果?此外,wp查询分页不起作用

Wordpress 使用search.php自定义搜索结果?此外,wp查询分页不起作用,wordpress,Wordpress,我正在制作一个过滤器插件,我想使用search.php搜索结果,但如果我在插件中将文本输入名称设置为“s”,那么它将使用常规搜索功能,而不是我在插件中设置的WP_查询方法 如果我更改了名称并使插件使用该名称,我会得到结果,但结果与插件本身出现的位置相同 那么,我可以让search.php页面使用我插件的结果吗 表格和我的查询: <?php $blog_url = get_bloginfo('url'); $form = <<<EOH <d

我正在制作一个过滤器插件,我想使用search.php搜索结果,但如果我在插件中将文本输入名称设置为“s”,那么它将使用常规搜索功能,而不是我在插件中设置的WP_查询方法

如果我更改了名称并使插件使用该名称,我会得到结果,但结果与插件本身出现的位置相同

那么,我可以让search.php页面使用我插件的结果吗

表格和我的查询:

<?php

    $blog_url = get_bloginfo('url');

    $form = <<<EOH
    <div id="sbc">
    <form method="get" action="{$blog_url}" id="ss-search">
        <input type="text" value="{$search_text}" name="ss" onblur="if (this.value == '') { this.value = '{$search_text}';}" onfocus=if (this.value == '{$search_text}') { this.value = '';}" />
        {$list}
        <input type="submit" id="sbc-submit" value="Search" />
    </form>
    </div>
EOH;

if (isset($_GET['ss'])) {
        $args = array(
            // 'category__not_in' => 1,
            's' => $_GET['ss']
        );

        $q = new WP_Query($args);

        if ( $q->have_posts() ) {
                echo '<ul>';
            while ( $q->have_posts() ) {
                $q->the_post();
                echo '<li>' . get_the_title() . '</li>';
            }
                echo '</ul>';
                echo get_pagination_links();
        } else {
            echo 'no posts found';

        }
        /* Restore original Post Data */
        wp_reset_postdata();
    }

    echo $form;

?>

好的,所以我花了很多时间试图解决我认为相同的问题,只是找到了很多关于如何使用
wp\u reset\u query
重置查询的建议(对于经验丰富的开发人员来说,这是可以预测的)

我发现这个问题本质上与我的search.php中的查询无关,而与querystring有关,而不仅仅是在搜索结果页面上,所以在我的短代码或插件中,我只需将全局wp_query is_search方法设置为false和BAM!终于得到了我预期的结果

global $wp_query;
$wp_query->is_search = false;

试试看,让我知道它对你有什么作用。只要在声明自己的
WP\u查询($args)
之前进行更改,您就应该没事了。

不久前我实际上解决了这个问题,我最终使用了功能强大的WP查询本身及其参数,它与search.php一起工作,问题是使用
set
方法。如果你需要帮助,请告诉我。就我个人而言,我从来没有见过这种方法,直到这里有一个好的灵魂介绍给我。很高兴你找到了它,没有看到提供的答案,所以我想我会发布我的。祝你好运
global $wp_query;
$wp_query->is_search = false;