Wordpress 搜索未显示结果

问题描述 投票:0回答:3

我又遇到了那些“wtf”问题之一。我不明白为什么我的搜索表单没有显示结果。请参阅此网页:http://sindlar.cz/exemplum/?lang=en

头部有get_search_form()。我还创建了 searchform.php 和 search.php。请参阅search.php:

    <section id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

        <?php if ( have_posts() ) : ?>

            <header class="page-header">
                <h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'shape' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
            </header><!-- .page-header -->

            <?php shape_content_nav(); ?>

            <?php /* Start the Loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>

                <?php get_template_part( 'content', 'search' ); ?>

            <?php endwhile; ?>

            <?php shape_content_nav( 'nav-below' ); ?>

        <?php else : ?>

            <?php get_template_part( 'no-results', 'search' ); ?>

        <?php endif; ?>

        </div><!-- #content .site-content -->
    </section><!-- #primary .content-area -->

点击搜索按钮后会打开搜索页面,但没有结果。也许数据库有问题或者什么?你有什么想法?我应该在 function.php 中添加一些东西吗?

我还注意到搜索网站的实际内容和虚构的文字之间存在差异。例如,如果您输入“关于我们”(这是我网站中的实际页面),它将显示 search.php 但没有结果。另一方面,如果您输入“Big Truck”或“fsdgwdhs”(我编的),它会发回search.php以外的其他页面。所以我认为 wordpress 可能知道有一些结果,但它没有显示它们。我不知道。

有人可以帮助我吗?

谢谢!

wordpress search search-form
3个回答
2
投票

以下是解决搜索问题的方法:

Via FTP/Cpanel go to wp-content - themes - theme name you are using - functions.
Open theme-functions.php in a text editor.
Replace with the code below    

function gt_search_filter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}

add_filter('pre_get_posts','gt_search_filter');
*/



    

0
投票

我意识到这是一篇旧帖子,但在我的搜索中,了解

pre_get_posts
不仅适用于分页,还适用于自定义搜索查询,这很有帮助。

当涉及到 search.php 时,下面的情况是有效的。我有两种自定义帖子类型,需要将搜索结果合并到主搜索查询中。我认为我应该包含普通帖子(博客帖子)中的任何内容以及包含我正在搜索的单词的任何页面内容。

将下面的代码添加到functions.php,但请记住,我指定了

is_search()
,因为我希望将所有结果发布到search.php(wordpress模板特定页面)。

search.php
上,只需调用基本循环即可。不要以任何方式合并 wp_query。

function search_query( \WP_Query $query ) {

   if ( $query -> is_search() && $query -> is_main_query() ) {

      $query -> set('posts_per_page', -1);
      $query -> set('post_status', 'publish');
      $query -> set('post_type', array('arizona_wine', 'arizona_beer', 'post', 'page'));
   }
}
add_action( 'pre_get_posts', 'search_query' );

-2
投票
<section id="primary" class="site-content">
    <div id="content" role="main">

    <?php if ( have_posts() ) : ?>

        <header class="page-header">
            <h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'twentytwelve' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
        </header>

        <?php twentytwelve_content_nav( 'nav-above' ); ?>

        <?php /* Start the Loop */ ?>
        <?php while ( have_posts() ) : the_post(); ?>
            <?php get_template_part( 'content', get_post_format() ); ?>
        <?php endwhile; ?>

        <?php twentytwelve_content_nav( 'nav-below' ); ?>

    <?php else : ?>

        <article id="post-0" class="post no-results not-found">
            <header class="entry-header">
                <h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
            </header>

            <div class="entry-content">
                <p><?php _e( 'Sorry, but nothing matched your search criteria. Please try again with some different keywords.', 'twentytwelve' ); ?></p>
                <?php get_search_form(); ?>
            </div><!-- .entry-content -->
        </article><!-- #post-0 -->

    <?php endif; ?>

    </div><!-- #content -->
</section><!-- #primary -->

将此代码与您的类和 CSS 一起放入 search.php 文件中

© www.soinside.com 2019 - 2024. All rights reserved.