Hoy en AyudaWordPress.com | ![]() |
Posted: 08 Nov 2013 11:13 AM PST WordPress tiene la fea buena costumbre de que si pones una URL en el contenido de una entrada o comentario aparece como texto plano, no se convierte automáticamente en un enlace, no sale “manita” al pasar el cursor por encima vamos.
Esto es así, principalmente, para evitar el spam en comentarios, pero también viene inactivo por defecto para el contenido de tus entradas y páginas. O sea, que poner una url así en el contenido: http://ayudawordpress.com no la convierte automáticamente en esto otro http://ayudawordpress.com. Hay una función, incluída en el fichero Por supuesto, puedes activarla modificando el archivo pero ya sabrás que eso nunca es recomendable, pues en cada actualización (y recuerda que ahora son automáticas) perderías la personalización. Así que, si queremos que las URLs sean activas y no texto plano tenemos que hacerlo de otro modo … … Autoenlazar URLs con plugin …Hay un plugin ya veterano que hace exactamente esto, que toda URL que aparezca en el contenido, por defecto, se convierta en un hiperenlace, que sea “clicable“. Lo mejor de todo es que dispone de una página de ajustes que nos permite controlar bastantes aspectos de esta funcionalidad, como si queremos que las URLs enlazadas abran siempre en nueva ventana o si también queremos que las URLs sean enlaces en los comentarios … o no. Solo tienes que instalar Auto-hyperlink URLs, configurarlo a tu gusto y ya lo tienes. … Autoenlazar URLs mediante función …Por otro lado, también puedes añadir una función a tu plugin de personalizaciones para conseguir lo mismo, esta: //Autoenlazar URLs function _make_url_clickable_cb($matches) { $ret = ''; $url = $matches[2]; if ( empty($url) ) return $matches[0]; // quita lo que sobra [.,;:] de la URL if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) { $ret = substr($url, -1); $url = substr($url, 0, strlen($url)-1); } return $matches[1] . "<a href=\"$url\" rel=\"nofollow\">$url</a>" . $ret; } function _make_web_ftp_clickable_cb($matches) { $ret = ''; $dest = $matches[2]; $dest = 'http://' . $dest; if ( empty($dest) ) return $matches[0]; // removed trailing [,;:] from URL if ( in_array(substr($dest, -1), array('.', ',', ';', ':')) === true ) { $ret = substr($dest, -1); $dest = substr($dest, 0, strlen($dest)-1); } return $matches[1] . "<a href=\"$dest\" rel=\"nofollow\">$dest</a>" . $ret; } function _make_email_clickable_cb($matches) { $email = $matches[2] . '@' . $matches[3]; return $matches[1] . "<a href=\"mailto:$email\">$email</a>"; } function make_clickable($ret) { $ret = ' ' . $ret; // aquí se usan arras para mayor velocidad $ret = preg_replace_callback('#([\s>])([\w]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_url_clickable_cb', $ret); $ret = preg_replace_callback('#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_web_ftp_clickable_cb', $ret); $ret = preg_replace_callback('#([\s>])([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret); // aquí no hay array para que se ejecute al final, para limpiar enlaces accidentales $ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "$1$3</a>", $ret); $ret = trim($ret); return $ret; } Guardas los cambios y ya lo tienes. |
You are subscribed to email updates from Ayuda WordPress To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
No hay comentarios:
Publicar un comentario