突出显示搜索结果摘录会导致PHP错误

时间:2018-08-31 13:38:45

标签: regex wordpress php-7.1 preg-quote

我在WordPress主题functions.php中具有以下代码。我正在本地和远程使用PHP 7.1。

    if ( ! function_exists( 'highlight_search_results' ) ) :
    // this filter runs on the_excerpt and the_title
    // to highlight inside both locations for search result pages
    add_filter( 'the_excerpt', 'highlight_search_results' );
    add_filter( 'the_title', 'highlight_search_results' );
    function highlight_search_results( $text ) {
        if ( is_search() && ! is_admin() ) {
            $sr          = get_query_var( 's' );
            $highlighted = preg_filter( '/' . preg_quote( $sr ) . '/i', '<span class="a-search-highlight">$0</span>', $text );
            if ( ! empty( $highlighted ) ) {
                $text = $highlighted;
            }
        }
        return $text;
    }
endif;

在部署到我们的服务器之前,它在开发中运行良好,没有错误。它的功能是在WordPress的搜索结果页面中,在标题和文章摘录中突出显示用户的搜索词。但是我认为我的问题不一定与WordPress有关。

在我们的实时服务器上,它会导致此重复的PHP错误:

[php7:warn] PHP Warning:  preg_filter(): Unknown modifier 'k' in /wp-content/themes/minnpost-largo/inc/extras.php on line 209

我可以问房东什么?或者,还有其他方法可以更可靠地实现这一目标吗?

0 个答案:

没有答案