WP

时间:2017-05-26 06:02:17

标签: php wordpress search

我的网站上的标题上有一个搜索表单,似乎它在主页面上工作正常,但在其他页面上却没有。

您能否建议在搜索任何其他网页时需要做些什么,并使用搜索结果重定向到主页面。就像主页已经做的那样。

这是您需要的文件。

的header.php

              <form class="input-search" id="search-form-folio">
              <input type="text" placeholder="Search" id="folio_filter_search">
              <i class="fa fa-search"></i>
              <input type="submit" value="">
          </form>

searchform.php

<form method="get" action="<?php print esc_url(home_url('')); ?>" class="input-search">
<input type="text" required placeholder="<?php esc_html_e('Search', 'nrgnetwork'); ?>" name="s">
<i class="fa fa-search"></i>
<input type="submit" value="">

的search.php

<div class="blog-wrapper">
                <?php
                    if ( have_posts() ):
                        // Start the loop.
                        while ( have_posts() ) : the_post();
                            get_template_part( 'content', get_post_format() );
                        endwhile;

                    // If no content, include the "No posts found" template.
                    else :
                        get_template_part( 'content', 'none' );
                    endif;
                    //pagination
                    NRGnetwork_TPL::pagination();
                ?>
            </div>

1 个答案:

答案 0 :(得分:0)

以下是指向WordPress中搜索页面上所有文档的页面链接:https://codex.wordpress.org/Creating_a_Search_Page

你需要知道的事情

不同的WordPress主题包含不同的模板文件。一些包括search.php模板文件。这不是搜索页面,它只是一个显示搜索结果的模板。还有一个名为searchform.php的模板文件。这是一个模板文件,通常包含在许多主题的侧边栏中,并生成搜索框表单。如果您的主题中没有一个,则可以轻松地从默认主题中复制它。

要创建自己的自定义搜索页面,您需要创建一个页面模板,以包含您的搜索表单以及您希望用户在搜索您的网站之前看到的信息。

检查您的WordPress主题,看它是否包含page.php模板文件。默认的WordPress主题确实包含此模板,但许多不包含。如果是,请按照这些说明操作。如果没有,我们会提供您创建自己的信息。

创建搜索页面模板

  1. 使用文本编辑器打开page.php并另存为searchpage.php。如果您没有page.php,则可以根据Theme的index.php模板文件创建一个。 注意:文件名search.php保留为特殊模板名称,因此请避免使用;建议的searchpage.php只是在文件列表中很容易识别。
  2. 保存后,编辑文件:

    • 删除循环(即内容div中的所有内容),保留div标记。

    • 添加标题,例如&#34;搜索帖子&#34;或类似的东西。您可以使用CSS样式表中的现有类,也可以创建一个新类。

    • 将以下内容复制到内容div或包含您网页内容的任何其他div中:

  3. 在您的searchpage.php的顶部,除此之外,添加此内容以使您的搜索页面成为WordPress将在管理屏幕中识别的标题:

    <?php
    /*
    Template Name: Search Page
    */
    ?>
    
      1. 保存文件。
      1. 将文件上传到您的主题目录(如果您对style.css样式表文件进行了更改,也请上传该文件。)

    如果您在Twenty Seventeen中从page.php创建searchpage.php,它将如下所示:

    <?php
    /*
    Template Name: Search Page
    */
    ?>
    <?php
    get_header(); ?>
    
    <div class="wrap">
        <div id="primary" class="content-area">
            <main id="main" class="site-main" role="main">
    
                <?php get_search_form(); ?>
    
            </main><!-- #main -->
        </div><!-- #primary -->
    </div><!-- .wrap -->
    
    <?php get_footer();
    

    创建搜索页面

    根据搜索页面模板,我们将创建搜索页面。

    在管理屏幕中,转到页面&gt;添新。 在标题字段中输入搜索。 不要在内容区域写任何内容。 仍在同一页面上时,请在右侧菜单中查找“页面属性”。 选择模板中的下拉菜单,然后选择搜索页面。 单击“发布”按钮。

    链接到您的搜索页面

    您现在可以通过多种方式建立自定义搜索页面的链接。

    使用页面ID

    无论您是否使用永久链接,都可以使用页面的页面ID编号链接到新的搜索页面。将下一行插入任何帖子,页面或模板

    <a href="index.php?page_id=17" title="Search Page">Search Page</a>
    

    或者您可以将下一行插入模板

    <a href="<?php echo home_url(); ?>/?page_id=17">Search Page</a>
    

    使用Page Slug

    Page slug在编辑页面屏幕中设置。如果您使用永久链接,它是页面的名称。您可以手动更改此设置。 Page slug链接的一个例子是:

    <a href="/wordpress/search-page/" title="Search Page">Search Page</a>
    

    当slug是&#39; search-page&#39;时,任何帖子,页面或模板。或者您可以将下一行插入模板

    <a href="<?php echo home_url(); ?>/wordpress/search-page/" title="Search Page">Search Page</a>
    

    使用wp_list_pages()

    如果您使用的是wp_list_pages()模板标记,则会在您的页面列表中自动生成页面名称。

    自定义搜索页面

    现在您已创建自定义搜索页面,您可以自定义显示。在文本编辑器中打开您的searchpage.php并在那里进行编辑。在内容div中的searchform.php的get_search_form()函数上方,您可以添加文本以帮助访问者搜索您的网站。

    我的网站提供有关的文章 WordPress的, 网页设计, 网站开发, 和CSS。

    要搜索我的网站,请使用下面的表格。

    <?php get_search_form(); ?>
    

    您可能希望包含关键字列表或其他信息,图片或详细信息,以自定义自定义搜索页。

    保留搜索页面结果和分页 将自定义应用于搜索模板时,搜索结果和分页可能会停止工作。要避免这些问题,开发人员需要做的第一件事就是将以下代码添加到其搜索模板的开头,以确保保留原始WordPress查询。要自定义查询,请向(array)$ search_query追加其他参数。通过新的$ wp_query对象执行$ search_query,可以在WP_Query找到有关WP_Query对象的更多信息。

    <?php
    global $query_string;
    
    $query_args = explode("&", $query_string);
    $search_query = array();
    
    if( strlen($query_string) > 0 ) {
        foreach($query_args as $key => $string) {
            $query_split = explode("=", $string);
            $search_query[$query_split[0]] = urldecode($query_split[1]);
        } // foreach
    } //if
    
    $search = new WP_Query($search_query);
    ?>
    

    可以在WP_Query找到其他自定义参数。

    显示总结果

    要从search.php(搜索结果页面)访问搜索结果总数,您应该检索使用wp_query对象找到的帖子总数。

    <?php
    global $wp_query;
    $total_results = $wp_query->found_posts;
    ?>
    

    有关WP_Query的更多信息可以在WP_Query找到。