搜索结果页面输出HTML代码

时间:2017-08-19 作者:dheller417

搜索结果页面标题显示可见代码。

例如,这是搜索结果页面顶部显示的内容,包括搜索词周围的范围码:

"Search Results for: <span>search_word</span>"
我不知道span代码是在哪里生成的,需要帮助才能使代码不可见。我正在使用初级主题并查看与搜索相关的模板,但现在我被难住了。

我将非常感谢你的帮助!非常感谢。

更新这里是奇怪的搜索。我在初级模板中找到的php代码-我切换到了2017主题,现在一切都好了:

    <?php
/**
 * The template for displaying search results pages.
 *
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#search-result
 *
 * @package Primer
 * @since   1.0.0
 */

get_header(); ?>

<section id="primary" class="content-area">

    <main id="main" class="site-main" role="main">

    <?php if ( have_posts() ) : ?>

        <?php while ( have_posts() ) : the_post() ?>

            <?php get_template_part( \'content\', \'search\' ); ?>

        <?php endwhile; ?>

        <?php primer_pagination(); ?>

    <?php else : ?>

        <?php get_template_part( \'content\', \'none\' ); ?>

    <?php endif; ?>

    </main><!-- #main -->

</section><!-- #primary -->

<?php get_sidebar(); ?>

<?php get_sidebar( \'tertiary\' ); ?>

<?php get_footer(); ?>

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

在代码中转义HTML很可能有问题。您可能正在执行以下操作:

echo esc_html("Search Results for: <span>search_word</span>");
相反,使用printf 或者只使用esc_html():

printf(\'Search Results for: <span>%s</span>\', esc_html( $search_word ) );
更新搜索结果由search.php, 大多数情况下(如果存在,并且您没有重写规则和模板重定向等)

但首先,右键单击出现问题的标题,然后单击Inspect Element. 开发者控制台将打开,标题将突出显示。请查看以下属于此问题标题的屏幕截图:

Header structure

现在,您知道了标题周围的一般结构。您可以在search.php 文件

更新2似乎您正在使用免费Primer WordPress主题库中的主题。

挖掘一段时间后,经过一连串的Tom & Jerry 样式为“追踪所有模板中随机声明的函数,我找到了问题的来源。问题来自/inc/helpers.php:

$title = sprintf(
    /* translators: search term */
    esc_html__( \'Search Results for: %s\', \'primer\' ),
    sprintf(
        \'<span>%s</span>\',
        get_search_query()
    )
);
这正是我所期待的。要解决此问题,只需删除<span></span> 正在包装搜索查询的。您可以在不删除跨距的情况下解决此问题,但它需要多个文件才能进行链编辑。不过,移除它并不是什么大不了的事。

但是,您可以使用child theme 这样做。

结束

相关推荐

Search one custom field?

在帖子中,有一个名为“color”的自定义字段。我有自定义搜索页面模板,我想只显示来自该自定义字段的搜索结果。如何限制搜索只在帖子内的一个自定义字段中查看?