我试图在我正在编码的主题中为搜索结果添加突出显示。我在这个帖子上找到了这样做的方法:How to highlight search terms without plugin 它工作得很好。然而,每当永久链接包含搜索词时,它与我的阅读更多链接相冲突,因为它试图在阅读更多链接中进行替换,导致链接奇怪地断开。
有人对此有什么建议或建议吗?
我使用的以下代码如下:
function search_excerpt_highlight() {
$excerpt = get_the_excerpt();
$keys = implode(\'|\', explode(\' \', get_search_query()));
$excerpt = preg_replace(\'/(\' . $keys .\')/iu\', \'<ins class="search-highlight">\\0</ins>\', $excerpt);
echo \'<p>\' . $excerpt . \'</p>\';
}
function supralegal_auto_excerpt_more( $more ) {
return \'…\' . supralegal_read_more_link();
}
add_filter( \'excerpt_more\', \'supralegal_auto_excerpt_more\' );
function supralegal_read_more_link() {
return \' <a href="\'. esc_url( get_permalink() ) . \'" class="read_more">\' . __( \'Read more\', \'supralegal\' ) . \'</a>\';
}
最合适的回答,由SO网友:Joshua Abenazer 整理而成
Try this.
function search_excerpt_highlight() {
$excerpt = get_the_excerpt();
$keys = implode(\'|\', explode(\' \', get_search_query()));
$excerpt = preg_replace(\'/(\' . $keys .\')/iu\', \'<ins class="search-highlight">\\0</ins>\', $excerpt);
echo \'<p>\' . $excerpt . \'…\' . supralegal_read_more_link() . \'</p>\';
}
function supralegal_auto_excerpt_more( $more ) {
return \'\';
}
add_filter( \'excerpt_more\', \'supralegal_auto_excerpt_more\' );
function supralegal_read_more_link() {
return \' <a href="\'. esc_url( get_permalink() ) . \'" class="read_more">\' . __( \'Read more\', \'supralegal\' ) . \'</a>\';
}