Cómo resaltar textos en búsquedas de WordPress + bonus




Por: el 12-enero-2009

busquedas resaltadas wordpressEl sistema de búsqueda de wordpress es algo escaso ya que a veces cuesta encontrar lo que buscamos. Para facilitar el trabajo a nuestros visitantes intentaremos resaltar las palabras buscadas como si se tratase del buscador de la palabras de firefox.

Para hacer esto necesitaremos abrir dos archivos: search.php y style.css.

Abrimos el archivo search.php y buscamos la suiguiente función en el título:

the_title()

Lo reemplazamos por el siguiente código:

echo $title;

Justo antes de la línea modificada, que es la del título del post, pegamos éste código:

<?php
	$title 	= get_the_title();
	$keys= explode(" ",$s);
	$title 	= preg_replace('/('.implode('|', $keys) .')/iu',
		'<strong class="search-excerpt">\0</strong>',
		$title);
?>

En el archivo style.css añadimos ésta línea:

strong.search-excerpt { background: yellow; }

Con esto conseguiremos que se resalten las palabras buscadas en los títulos, pero no en el excerpt, por lo tanto deberemos hacer algo más…

En el archivo search.php buscamos la siguiente línea:

<?php the_excerpt (); ?>

Y la reemplazaremos por el siguiente código:

<?php echo $excerpt; ?>

Ahora añadiremos, como antes, el código justo antes de la línea que acabamos de editar. ¡Atención! Éste código está modificado para que sirva en el excerpt:

<?php
	$excerpt 	= get_the_excerpt();
	$keys= explode(" ",$s);
	$excerpt 	= preg_replace('/('.implode('|', $keys) .')/iu',
		'<strong class="search-excerpt">\0</strong>',
		$excerpt);
?>

El loop entero quedaría así:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php
	$title 	= get_the_title();
	$keys= explode(" ",$s);
	$title 	= preg_replace('/('.implode('|', $keys) .')/iu',
		'<strong class="search-excerpt">\0</strong>',
		$title);
?>
<h1><a href="<?php the_permalink() ?>" rel="bookmark"><?php echo $title; ?></a></h1>

<?php
	$excerpt 	= get_the_excerpt();
	$keys= explode(" ",$s);
	$excerpt 	= preg_replace('/('.implode('|', $keys) .')/iu',
		'<strong class="search-excerpt">\0</strong>',
		$excerpt);
?>
<?php echo $excerpt; ?>

Así de facil.

¡Plugin bonus!

También podemos usar un plugin para conseguir un resultado parecido para que la gente quelelga desde buscadores vea las palabras que buscaba resaltadas en colores:

Goolge Highlight

Instalación:

Descargamos el archivo google-hilite.php y lo cargamos a la carpeta de plugins dentro de wp-content. Lo activamos en nuestro panel de administración y listos.

Buscadores con los que funciona:

Yahoo, Google y Lycos.

Fuentes: Wp Recipes y Wp Cult

Tags: , ,

2 respuestas a “Cómo resaltar textos en búsquedas de WordPress + bonus”

  1. tEtO dice:

    Hola Diego, lograste descubrir algo para mostras mas lineas de coincidencias?

  2. diego dice:

    Hola!
    Me funciono barbaro. resalta las palabras buscadas en el titulo y en el texto.

    Pero si yo tengo las coincidencias en al final de un post, la busqueda me muestra las primeras lineas solamente. No las lineas que tienen coincidencias.
    me entiendes?

    espero que algo asi se pueda hacer.

    Gracias!
    saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

dieciseis − 4 =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.