WordPress自定义搜索仅适用于某些页面

时间:2021-05-19 作者:summerfresh

UPDATE: 06/07/21 - 我设法联系了找到答案的开发人员,以防其他人也有类似的问题。请参见下面回答中的答案。

我们的场地是由承包商建造的。那个承包商已经停业了,帮不上忙了。

我们的网站是www.summerfresh.com 并使用了第217个主题的修改版本。

开发人员创建了自定义搜索。单击首页上的spy glass搜索图标时,会显示一个搜索框,输入搜索词后,必须单击三个选项之一:1。搜索产品;2、搜索配方;3、搜索博客The search function is supposed to search the entire site for your term, limited only by which of those three options you choose, but in reality it only works that way from the front page, and the blog page.

我曾尝试在谷歌上搜索这个问题,但我认为它可能非常独特,因为开发人员创建自定义搜索的方式可以在特定类别中进行搜索。我看到的一些潜在解决方案建议确保搜索表单。php每次都在搜索所有的home\\u url,我尝试了不同的版本,但没有成功。我认为这可能与搜索有关。”;“类别”;开发人员将其放入搜索框。

理想情况下,我希望它只从整个站点中搜索一个术语,甚至可能从搜索框中删除产品/配方/博客选项,但我很难找到一些东西来告诉我如何用默认的站点范围搜索正确替换开发人员拥有的内容。

The issue in practice

从首页(静态页面)或;“最新消息”;页面(wordpress发布页面)搜索功能正常工作。从“搜索结果”页面再次搜索时,搜索工作正常。在这些情况下,它似乎可以正确地搜索整个站点。

从任何第二级页面(如/产品/或/配方/或/联系人/)搜索时,结果为;找不到该页;。

当在第三级食谱部分(如/recipe categories/dinner/)中搜索将在该部分中找到的搜索词时,搜索函数将返回该部分的结果,但不会返回可能在其他/食谱类别/部分(或网站上的其他地方)中找到的该词的结果。

当在第三级食谱部分(如/recipe categories/breakfast/)中搜索某个搜索词时,如果该搜索词在该部分中找不到,但在另一个/recipe categories/section(或网站上的其他地方)中找到,则结果为;未找到任何内容;。

当从单个配方页面(如/recipe/loaded baba ghanouj and halloumi flatbreads/)中搜索一个会或不会出现在该页面上的术语时,结果是;找不到该页;。

为了验证这一点,我尝试搜索术语;鸡肉“;使用;搜索“配方”;从上面列出的每种页面类型中选择下拉选项,以查看我会得到什么。

The current searchform.php looks like this:

    <?php $unique_id = esc_attr( uniqid( \'search-form-\' ) ); ?>
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( \'/\' ) ) ?>">
    <label for="<?php echo $unique_id; ?>">
        <span class="screen-reader-text"><?php echo _x( \'Search for:\', \'label\', \'twentyseventeen\' ); ?></span>
    </label>
    <input type="search" id="<?php echo $unique_id; ?>" class="search-field" placeholder="<?php echo esc_attr_x( \'Search &hellip;\', \'placeholder\', \'twentyseventeen\' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
    <button type="submit" class="search-submit"><?php echo twentyseventeen_get_svg( array( \'icon\' => \'search\' ) ); ?><span class="screen-reader-text"><?php echo _x( \'Search\', \'submit button\', \'twentyseventeen\' ); ?></span></button>
</form>

The search box is in the header.php like this:

 <div class="search-bar d-flex justify-content-center hidden-md-down">
                <div class="search-overlay"></div>
                <div class="search-close"><i class="fa fa-times fa-2x" aria-hidden="true"></i></div>
                <div class="row align-self-center">
                    <div class="col-sm-12">
                              <div class="form-group m-0">
                 
                                <input type="text" class="form-control" id="search-input" placeholder="<?php echo __(\'Type your search and choose from the categories below.\');?>" tabIndex="1">
                 
                  
                                <div class="dropdown-menu">
                                       <a href="#" data-href="?lang=<?php echo ICL_LANGUAGE_CODE;?>&post_type=product&s=" class="dropdown-item" tabIndex="2"><?php echo __(\'Search Products for\'); ?> <span class="suggest-it"></span></a>
                                       <a href="#" data-href="?lang=<?php echo ICL_LANGUAGE_CODE;?>&post_type=recipe&s=" class="dropdown-item" tabIndex="3"><?php echo __(\'Search Recipes for\'); ?><span class="suggest-it"></span></a>
                                       <a href="#" data-href="?lang=<?php echo ICL_LANGUAGE_CODE;?>&post_type=post&s=" class="dropdown-item" tabIndex="4"><?php echo __(\'Search Blog for\'); ?><span class="suggest-it"></span></a>
                                    </div>
                              </div>
                    </div>
            </div>
          </div>
非常感谢您的任何建议。

1 个回复
SO网友:summerfresh

解决方案(来自开发人员)是添加一个/"E;在第一个“之前”"E;在下面的代码中,针对三个下拉搜索选项中的每一个<;a href="#"E;数据href=“?”;?朗=

相关推荐

How to search usermeta table

搜索usermeta以基于meta\\u值查找user\\u id的最佳方法是什么?例如,在usermeta表中,有一行user\\u id=123,meta\\u key=deviceid,meta\\u value=45545。我知道设备id,我需要找出与之关联的user\\u id。我试过(在其他一百万件事情中)这样:$scaleData = json_decode($reading, TRUE); $deviceid = $scaleData[\"imei\"]; $WhoIsUs