¿Quieres abrir los enlaces de comentarios en una nueva ventana?

Seguro que alguna vez lo has pensado. ¿Cómo podría conseguir abrir los enlaces de comentarios en una nueva ventana?

Y eso mismo pensó mi amiga Laura, del blog caoscero.com (un blog imperdible, si quieres poner orden en el caos de tu negocio).

Por supuesto, cuando se le ocurre alguna mejora para su blog ¿a qué mejor casa va a ir a preguntar que a la mía?

Así que se vino «pa’ca» y me pegó un silbido: » Niño, ¿y esto cómo se hace?».

Pues nada que me guste más que un buen reto. Así que me puse a investigar, cómo hacerlo de forma sencilla, teniendo en cuenta además que usa Genesis Framework. Y que desde luego podría ser buena idea añadir un atributo para que los enlaces de los comentarios de WordPress de autores, se abrieran en una nueva pestaña o ventana, y así no perder la visita en tu web.

Buscando en Google (para qué inventar la rueda si lo mismo ya esta inventada), encontré este código para añadir a tu fichero functions.php:

function comment_links_in_new_tab($text) {  $return = str_replace('<a', '<a target="_blank"', $text);  return $return;  }  add_filter('get_comment_author_link', 'comment_links_in_new_tab');  add_filter('comment_text', 'comment_links_in_new_tab');

Pero me pasaron varias cosas:

  1. No me gusta que se use la función php str_replace, pues al final es una especie de buscar y reemplazar, que busca una cadena de texto y la sustituye por otra, y consume muchos recursos.
  2. No me funcionó en Genesis Framework.

Por lo demás la veo bien hecha, y pienso que en un tema diferente a Genesis Framework podría funcionar.

También encontre un plugin,WP Open Comment Links in New Window, que soluciona el problema de abrir los comentarios de WordPress en una nueva ventana, pero añadiendo un plugin más a nuestra lista, y un javascript añadido.

De nuevo, más recursos.

Una solución que no me gusta un pelo.

Abrir los enlaces de comentarios en una nueva ventana para Genesis Framework

La solución definitiva para mí.

Lógicamente usando los «Action_hooks» y «Filter_hooks» de Genesis.

¿Recuerdas que te contaba que son esos «ganchos» que nos permiten insertar funciones personalizadas en nuestro Child Theme?

Pues resulta que hay un filter, asociado a al enlace del autor de un comentario, y que podemos usar para conseguir lo que queremos.

Así que simplemente añade estas lineas al functions.php de tu Child Theme (recuerda, solamente los basados en Genesis Framework):

 

Y voilà!

Funciona.

Pero nos falta una pequeña parte, que es conseguir que los enlaces que dejan los comentaristas en en esos comentarios, también se abran en una nueva ventana.

Para eso, añade al final del functions.php, además este código:

function rt_add_link_target( $content ){   	$bits = explode( '<a ', $content );   	foreach( $bits as $key=>$bit ){  	 		$pos = strpos( $bit, '>' );  	 		if( $pos !== false ){  		 			$part = substr( $bit, 0, $pos );  		 			$siteurl = network_site_url();  		 			if( strpos( $part, $siteurl ) === false && strpos( $part, 'target=' ) === false ){  			 				$bits[$key] = 'target="_blank" ' . $bits[$key];  			}  		}  	}   	return implode( '<a ', $bits );  }  add_filter( 'comment_text', 'rt_add_link_target' );  

Pruébalo en este mismo blog. Deja tu comentario, y haz clic en tu nombre para ver como tu web se abre en una nueva ventana.

Acceso gratuito
a la Academia de
Hormigas en la Nube

+20 cursos disponibles sobre herramientas, marketing y ventas

Por tiempo limitado estoy regalando el acceso a la librería de recursos de la Academia de Hormigas en la Nube.

Cursos de ActiveCampaign, Elementor, Beaver Builder, WordPress, Copywriting, ventas, email marketing y más te estan esperando dentro. Disponible gratis por tiempo limitado.

Mockup escritorio herramientas
Ir arriba