繁体   English   中英

使用get_search_form()搜索帖子

[英]Search the post using get_search_form()

我试图基于关键字的搜索来获取帖子,我使用了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。 在您的主题->模板零件-> yourtemplatename.php中创建一个php模板文件:2-转到您的主题-> search.php并进行更改,例如template-parts / content','search'到template-parts / product ','yourtemplatename'yourourtemplatename.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 }?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM