使用get_search_form()搜索帖子

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

我试图根据关键字的搜索来获取帖子,我使用了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),无论搜索的关键字如何,它都会显示所有帖子。

php wordpress
1个回答
1
投票

如果您想要特定的搜索结果,您可以执行以下步骤: - 步骤:-1。在你的主题 - >模板部分 - > yourtemplatename.php中创建一个php模板文件步骤:2-转到你的主题 - > 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 }?>
© www.soinside.com 2019 - 2024. All rights reserved.