Nociones básicas de HTML... y un poco de PHP

Cómo crear enlaces anclados internos (y añadir una función al editor de WordPress)

Los enlaces que más se utilizan son los que apuntan a otra dirección en Internet, sea dentro de nuestra propia web o hacia cualquier otra página. Pero el sistema de enlazado hipertextual (HTML) nos permite ir un paso más allá y enlazar directamente a un punto concreto de una página web o a una parte de un documento, es decir, crear enlaces internos.

Un enlace “normal” al artículo sobre HTML de la Wikipedia tiene esta forma:

<a href="http://es.wikipedia.org/wiki/HTML">Artículo sobre el HTML en la Wikipedia</a>

Pero hay veces que es muy útil enlazar directamente a un punto concreto de un documento, en vez de a la parte superior de una página. Por ejemplo, si queremos guiar a alguien a la misma página de la Wikipedia pero a la sección sobre nociones básicas de HTML, en vez de decirle que lo busque, como la página de destino es bastante larga, es mejor facilitarle la vida y ofrecerle un enlace directo a un ancla. Así:

<a href="http://es.wikipedia.org/wiki/HTML#Nociones_b.C3.A1sicas_de_HTML">Nociones básicas de HTML</a>

Un enlace anclado (enlaces ancla, o simplemente enlaces internos) no es más que un enlace normal y corriente al que añadimos el símbolo de la almohadilla “#” y el nombre de algún elemento de esa página, que puede ser un atributo “name” o “id”. Esto quiere decir que podemos dirigir al usuario a un punto concreto de cualquier página, incluso de la misma página en la que está. La Wikipedia, sin ir más lejos, hace un uso intensivo de este tipo de enlaces internos en sus artículos.

Vamos a ver paso a paso cómo hacer esto utilizando el editor de texto de WordPress (TinyMCE).

Cómo añadir un enlace anclado a un punto de una misma página

Si utilizamos la opción de código (la pestaña “HTML”), solo tenemos que hacer dos cosas:

  1. Añadir el link así: <a href="#mi-ancla">Palabras enlazadas</a>
  2. En el punto de destino, añadir el ancla, así: <a name="mi-ancla"></a> (no hace falta que haya nada dentro de las etiquetas, puede estar vacío)

Pero no es estrictamente necesario hacerlo a mano y arriesgarnos a cometer errores. Podemos añadir un botón al editor de contenido de WordPress para facilitar el trabajo (ver instrucciones más abajo). Si contamos con este nuevo botón, podremos utilizar la pestaña de edición “Visual”. El procedimiento entonces será un poco más largo, pero más fácil para quien no tenga unas nociones básicas de HTML:

  1. Seleccionar la/s palabra/s que queremos que sean el enlace
  2. Pulsamos el botón de la cadenita (Añadir enlace)
  3. En el campo “URL”, eliminamos “http://”, añadimos el destino así: #mi-ancla y pulsamos el botón “Añadir enlace”
  4. Después colocamos el cursor en el destino (el punto de la página donde queremos que nos lleve ese enlace). No hace falta seleccionar nada, solo situar el cursor.
  5. Pulsamos el botón del ancla, en la primera fila de botones, al final (recuerda, este botón no aparece por defecto, hay que añadirlo siguiendo las instrucciones que ahora explicaremos)
  6. Añadir el nombre del ancla, así: mi-ancla (sin el símbolo “#”, ni “http://” ni nada más) y pulsar “Insertar”

Cómo añadir el botón “Anchor” al editor de WordPress

El botón “Anchor” (ancla) no aparece por defecto en una instalación normal de WordPress. Es necesario especificar que lo queremos utilizar, añadiendo una función para ampliar las posibilidades del editor TinyMCE.

En el archivo functions.php del tema activo o en nuestro plugin de funciones, tenemos que añadir este código:

// Configurando TinyMCE editor
add_action('init', 'nueva_config_tinymce');
function nueva_config_tinymce() {

	// Si el usuario no tiene permiso para editar páginas o entradas
	// no aplicamos la nueva configuración
	if (!current_user_can('edit_posts') && !current_user_can('edit_pages'))
		return;
		
	// Si el usuario utiliza el modo visual (Rich Editor)
	if (get_user_option('rich_editing') == 'true') {

		// Recuperamos botones ocultos
		add_filter('mce_buttons', 'nuevos_botones_mce');
		function nuevos_botones_mce($buttons) {
			// Especificamos los botones que nos interesan. En nuestro caso, "anchor"
			// Posibilidades: anchor, backcolor, cleanup, code, copy, cut, fontselect, fontsizeselect, hr, paste, redo, styleselect, sub, sup, undo
			array_push($buttons, 'anchor');
			return $buttons; 
		}
	}
}

Este código nos da la posibilidad de añadir, además del botón para anclaje de enlaces, etiquetas y funciones muy útiles como HR, CODE, CUT, STYLESELECT y muchas más al editor de WordPress, facilitando así el trabajo de edición a nuestros clientes y usuarios.

Plugins de WordPress relacionados

  • Better Anchor Links
    Sirve para crear índices de página (al estilo de la Wikipedia), añadiendo automáticamente enlaces anclados internos a las etiquetas de cabecera (H1, H2, H3…) que hayamos incluído.
  • TinyMCE Advanced
    Un plugin muy completo que nos puede ayudar a mejorar la funcionalidad del editor de WordPress, activando características que no aparecen por defecto.

Más información

Comentarios

  1. Franco

    Amigo, como puedo insertar un editor de texto en mi pagina web… por ejemplo.. mi página es de un reportero.. por consiguiente quiero que lleve un editor de texto, para que las noticias puedan ser editas. por el mismo reportero.

  2. Daniel

    Lo suyo sería utilizar un gestor de contenidos. Hay muchos, entre los más populares, WordPress, Joomla, Drupal, ExpressionEngine… Aquí tienes una lista completa: http://en.wikipedia.org/wiki/List_of_content_management_systems

  3. Franco

    Pero Como utilizo eso o que hago.. esque soy nuevo en esto de wordpress.. y no se mucho.. Podria decirme que acer con esto..para que el editor aparesca en mi pagina web y el editor vaya, pueda editarla

  4. Daniel

    En ese caso, lo mejor es empezar por aquí: Getting Started with WordPress => http://codex.wordpress.org/Getting_Started_with_WordPress

  5. Txitxum

    Hola, como podria hacer varios enlaces en la misma pagina? estoy haciendo omo un submenu en la misma pagina pero me dirigen todos los enlaces al mismo punto…

  6. Daniel

    En ese caso, si hay varios enlaces en la misma página, cada uno tiene que apuntar a un único destino.

    Aquí tienes un ejemplo: http://jsfiddle.net/edzy8/

  7. Txitxu

    Muchas gracias!! llevaba mucho tiempo buscando este “truco”.

  8. Renée

    Hola. Tu blog es muy útil. Tengo una duda sobre este tema: sigo tus instrucciones para añadir el botón “Anchor” pero no lo consigo. No tengo idea qué puedo estar haciendo mal. He encontrado el archivo functions.php en el tema activo de mi wp y pego el código al final del texto pero no lo logro… qué hago? qué más te puedo contar? Saludos y otra vez gracias por tu trabajo.

  9. Milca

    Hola! Estoy buscando la forma de enlazar mi pagina (ya tengo el diseño) con el editor de wordpress.. ¿donde puedo leer más de esto? ¿Servirá para poder crear tablas de imágenes en forma dinámica? También preciso que estas imágenes se amplien tipo higslide.com y cómo haría la generación de dicho código en forma dinámica?

  10. Daniel

    @Renée:
    Sí, eso ya depende de cada tema. De todas formas, acabo de hacer una prueba con la última versión de WordPress (3.5.1) y sigue funcionando correctamente.

    Si no te funciona añadiendo el código al final de “functions.php”, prueba a ponerlo al principio, para asegurarte de que el código no llega demasiado tarde para lo que tiene que hacer.

  11. Daniel

    @Milca:
    No entiendo la pregunta. Si con “Enlazar mi página con el editor…” te refieres a añadir enlaces dinámicos en las páginas y entradas, para poder editarlas fácilmente, esta es tu función: http://codex.wordpress.org/Function_Reference/edit_post_link

    Sobre el resto de cuestiones, supongo que te refieres a la función de crear galerías en WordPress. Si es así, aquí tienes toda la información: http://codex.wordpress.org/Gallery_Shortcode

Y tú qué opinas?

Las URLs se convertirán en enlaces automáticamente. Tu dirección de email no se publicará ni se utilizará para enviar ningún tipo de información. Los mensajes que no aporten nada al tema que se trata en esta entrada se borrarán. Las imágenes que aparecen al lado de cada autor utilizan el servicio de Gravatar. Recuerda que puedes usar etiquetas HTML como <a href>, <code>, <em> o <strong> en los comentarios.

(necesario)

(opcional)