【问题标题】:Wordpress: How to create a custom search form only to a specific pageWordpress:如何仅针对特定页面创建自定义搜索表单
【发布时间】:2016-09-27 09:55:19
【问题描述】:

如何创建只应出现在特定页面上的自定义搜索表单?

  1. 使用 <?php get_search_form(); ?> 将 wordpress 的默认搜索表单插入页面。

  2. 添加这个

searchform.php

到我的主题文件夹会覆盖整个网站的搜索功能

我想添加一个搜索表单,它只显示来自特定类型的自定义帖子类型的帖子

表单应该只出现在特定页面中。(因此其他页面中的搜索表单不应受此影响)

请问如何实现。非常感谢任何帮助。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    不要修改searchform.php,因为你想使用默认搜索其他页面。下面的 html 代码将为您创建一个自定义表单。只需将代码粘贴到模板中,即可获得自定义搜索表单。

        <form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
            <input type="text" value="" name="s" id="s" />
            <input type="hidden" name="search-type" value="books" />
            <input name="submit" type="submit" value="Go" />
        </form>
    

    假设您的自定义帖子类型是“书籍”。默认情况下,您的搜索结果将使用 search.php 文件。因此,我们将检查该值是否为书籍,然后我们将加载用 books-search.php 编写的自定义搜索查询。否则你可以加载现有的代码是search.php。

    在您的 search.php 文件中:

    if(isset($_GET['search-type'])) {
        $type = $_GET['search-type'];
        if($type == 'books') {
            load_template(TEMPLATEPATH . '/books-search.php');
        }
    }else{
     // Your current code
    }
    

    现在在 books-search.php 中使用:

    $args = array( 'post_type' => 'books' );
    $args = array_merge( $args, $wp_query->query );
    query_posts( $args );
    

    这将只搜索书籍帖子类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 2016-09-25
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多