Uso de la expresión regular para reemplazar enlaces externos en WordPress con fines de SEO
wordpress-pad
Digamos que queremos poner un REL=NOFOLLOW en todos los enlaces externos en sus publicaciones/páginas de wordpress, podemos agregar un filtro para analizar el contenido usando la función de reemplazo de expresión regular, por ejemplo, preg_replace_callback.
add_filter('the_content','add_utm_string',999);
function add_utm_string($content){
$content = preg_replace_callback('~hrefs*=s*['"](.*)['"]~i', function ($matches) {
$home_url = parse_url(home_url())['host'];
if (stripos($matches[1], $home_url) === false) {
return 'href="'.$matches[1]. '?utm_source='. $home_url. '" rel=nofollow';
}
return 'href="'.$matches[1].'"';
}, $content);
return $content;
}
Añadimos la función de filtro add_utm_string al filtro the_content. Luego usamos la función PHP preg_replace_callback que analiza la cadena HTML de la publicación/página actual de wordpress y reemplaza el hipervínculo si es externo.
Usamos lo siguiente para extraer el nombre de dominio actual, por ejemplo , helloacm.com de su sitio de wordpress.
$home_url = parse_url(home_url())['host'];
Entonces, podemos excluir nuestros propios enlaces. De lo contrario, a todos los enlaces externos se les agregará la etiqueta "NOFOLLOW" y el parámetro de consulta ?utm_source. Por supuesto, puede personalizar la creación de enlaces fácilmente.
La función PHP preg_replace_callback toma el primer parámetro: Patrón de expresión regular, el segundo parámetro es una función de devolución de llamada cuando el patrón coincide y el tercer parámetro es la cadena original.
Este es un ajuste útil para su plantilla de wordpress (puede agregar la función PHP anterior a su plantilla de tema functions.php) que mejora su SEO de wordpress.