使用get_search_form()搜索帖子

时间:2017-12-27 06:10:55

标签: php wordpress

我正在尝试根据关键字的搜索来获取帖子,我使用了get_search_form()也在主题(子主题)的根文件夹中创建了 searchform.php

在下面找到我的文件

file1.php

<article class="blogBanner">
        <div class="caption">
            <h1>All About Travel, Food &amp; Holidays</h1>
            <h4>Experience the Change</h4>
            <div class="field">
                <?php get_search_form(); ?>     
            </div>
        </div>
</article>

searchform.php (此文件位于子主题的根文件夹中)

<form role="search" name="main-search" method="get" class="search-form" action="<?php echo esc_url(home_url( '/' )); ?>">
    <input type="text" class="form-control input-search" name="s" placeholder="" value="<?php echo get_search_query() ?>" />
    <button type="submit" class="btn btn-search"><i class="fa fa-search"></i></button>
</form>

因此,每当我使用表单中的任何关键字搜索帖子时(表单来自searchform.php),无论搜索的关键字如何,都会显示所有帖子。

1 个答案:

答案 0 :(得分:1)

如果您想要特定的搜索结果,您可以执行以下步骤: - 步骤1。在你的主题 - &gt;模板部分 - > yourtemplatename.php中创建一个php模板文件 步骤:2-转到您的主题 - &gt; search.php并进行更改 模板 - 零件/内容','搜索'到模板零件/产品','yourtemplatename' 你的yourtemplatename.php应该是你的客户查询,如下所示: -

<?php
global $wpdb;
$title = $_GET['s'];
$myposts = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_title LIKE '%s' AND post_type LIKE 'post'", '%'. $wpdb->esc_like( $title ) .'%') );
foreach ( $myposts as $mypost ) 
{
    $posty = get_post( $mypost );
?>
 <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
<?php echo $posty->post_title;
echo"<br>";
?></a>
<?php }?>