Creo que ya lo he comentado en alguna ocasión anterior, pero una de las cosas que más me gusta de WordPress es la facilidad con la que se puede personalizar. ¿Quieres cambiar el logo que aparece en la pantalla de login? Puedes hacerlo. ¿Quieres que las sesiones de tus usuarios caduquen antes y tengan que volver a iniciar sesión? Es fácil con este plugin. ¿Quieres <pon aquí lo que necesites>? ¡Probablemente también puedas!
Con la cantidad de plugins que tiene WordPress (más de 42,000), es fácil imaginar que prácticamente cualquier necesidad que tengas estará cubierta por alguno de ellos (y, sino, siempre puedes contratar a algún WProfesional ?). Y si echas un vistazo por la web, en seguida encontrarás un montón de entradas dando consejos y trucos para conseguir personalizar tu web hasta el más mínimo detalle.
Sin embargo, la verdad es que los plugins no siempre son la mejor solución para conseguir el efecto deseado. Y es que tener muchos instalados puede reducir la velocidad de tu WordPress y afectar negativamente a la experiencia de usuario de tus visitantes. Además, una mayor cantidad de plugins también implica tener que dedicar más tiempo a actualizarlos…
Así pues, ¿qué puedes hacer si quieres tener un mayor control de tu WordPress, quieres poder usar plugins, pero te gustaría poder ahorrarte estas desventajas? En la entrada de hoy te enseño cómo puedes personalizar algunos parámetros de WordPress (tanto del escritorio como del front-end público) usando unas pocas líneas de código.
Personalizando el Escritorio de WordPress
Cambia el Logo en la pantalla de login
Vamos a empezar con algo sencillito pero bastante importante para tu imagen personal (o la de tu empresa): usar tu logo en la pantalla de login. Simplemente, añade el siguiente código en el fichero functions.php
de tu tema:
Fíjate en un par de detalles importantes del código anterior, los cuales se van a ir repitiendo en (casi) todos los ejemplos de hoy:
- Todos los fragmentos de código que comparto empiezan en
<?php
. Cuando vayas a pegar el fragmento de código en tu instalación de WordPress es posible que esta directiva no la necesites; lo único que indica eso es que el código que viene a continuación es PHP. Si no tienes claro si ponerlo o no, pregunta en los comentarios ? - Las modificaciones consisten en una función (en este caso,
wprin_my_logo_on_login
) y un filtro o acción que usa esa función (add_action
alogin_head
). - Las funciones empiezan con un prefijo común (
wprin_
, de nuestro WPrincipiante) para evitar que nuestros nombres de función coincidan con los nombres de función de otros plugins o del tema, ya que las funciones deben ser únicas (o saltaría un error). - El código contiene comentarios. Estos son muy importantes, pues te ayudarán a recordar qué hacía una función en concreto cuando la mires el año que viene y te preguntes «¿Para qué metería yo esto aquí?«
- Los nombres de las funciones y las variables están en inglés. Escribir el código en inglés en una plataforma como WordPress facilita que otros desarrolladores puedan meterle mano, extenderlo o ayudarte cuando lo necesites. De hecho, incluso los comentarios deberían estar en inglés ?
Modifica la duración de las sesiones
Si sueles conectarte al escritorio de tu WordPress desde redes WiFi públicas o desde ordenadores de acceso compartido (por ejemplo, en la universidad o en el trabajo), es muy importante que no te olvides de cerrar tu sesión al acabar. Si no lo hicieras, el que viniera después de ti y se sentara en tu ordenador podría meterle mano a tu WordPress (por cierto, este es otro de los motivos por los cuales aconsejamos usar el usuario de administración para administrar únicamente el site, y un editor o autor para publicar).
WordPress te permite modificar la duración de tu sesión. Es decir, si hace más de x tiempo que iniciaste la sesión, ésta caducará automáticamente y te obligará a volver a introducir tu usuario y contraseña. Por ejemplo, si nunca entras en el escritorio de WordPress desde lugares públicos y únicamente lo haces desde casa, ¿por qué no extiendes la duración de la sesión? Añade el siguiente código en el functions.php
de tu tema y tendrás «siempre» la sesión lista para trabajar sin que WordPress te eche:
Si no me equivoco, una sesión en WordPress dura, por defecto, hasta dos semanas (suponiendo que le diste a la casilla Recuérdame). En el ejemplo extiendo esa duración a un año en segundos, pero puedes usar el tiempo que te interese. Simplemente piensa en tus necesidades y establece una duración que se adapte a ellas.
Cambia el pie de página
Otro ejemplo donde la imagen corporativa puede ser importante. Si quieres dar un toque más «personal» al escritorio de WordPress, ¿por qué no modificas también el texto que aparece en el pie de página? Con el siguiente fragmento de código en, de nuevo, el fichero functions.php
podrás usar el lema de tu empresa (o lo que sea) en tu WordPress:
Modificar el número de revisiones por entrada
Por si no lo sabías, WordPress va guardando «versiones» de las entradas que escribes; es una especie de time machine de tu contenido. Esta funcionalidad es genial, puesto que te permite recuperar el texto de versiones anteriores fácilmente y ver los cambios que hubo entre dos versiones cualesquiera.
Por defecto, WordPress guarda un número ilimitado de versiones, cosa que puede llegar a ocupar «bastante» en tu base de datos. Si quieres limitar ese número, bastará con que añadas la siguiente línea en el fichero wp-config.php
(en la raíz de tu instalación WordPress):
Modificar el intervalo de auto-guardado
De forma parecida, también puedes modificar el intervalo en que WordPress guarda de forma automática lo que escribes. Ah, ¿no lo sabías? Pues sí, amigo, así es: WordPress va guardando cada cierto ratito lo que has escrito para protegerte de desastres como que te pete el navegador y no hayas guardado manualmente tu entrada. Con esta línea en wp-config.php
puedes modificar el intervalo de auto-guardado:
Puedes encontrar más configuraciones avanzadas para tu WordPress modificando el archivo wp-config.php
en este artículo.

Nelio Forms
Un plugin de contacto fantástico que usa el editor de bloques. En su simplicidad está la potencia del plugin. Me encanta, es muy versátil y funciona de maravilla para mí.

Wajari Velasquez
Personalizando el front-end
Retrasar la aparición de entradas en el canal RSS
Imagina la siguiente situación: acabas de escribir una entrada, la publicas y, al rato, te das cuenta de que hay una falta de ortografía en el título. ¡Qué desastre! En ese rato, es posible que los lectores de RSS de tus visitantes ya hayan actualizado su lista de noticias y hayan indexado tu entrada con la falta de ortografía. ¡Vaya! Ojalá hubieras tenido un poquito más de tiempo para repasar tu entrada…
Este pequeño fragmento de código permite hacer precisamente eso. Las entradas que aparecen en tu canal de RSS se seleccionan a través de un loop de WordPress y, como puedes imaginar, tienes la posibilidad de meterle mano a ese loop y modificarlo a tu antojo para que sólo aparezcan las entradas que a ti te interesan.
¿Qué hace este «pequeño» código? Básicamente, comprueba que la selección de entradas que se está haciendo sirve para generar el canal de RSS (is_feed()
en la línea 14) y, si lo es, añade una condición: incluye sólo aquellas entradas que lleven, como mínimo, 60 minutos publicadas. Fácil, ¿no?
Excluir las páginas de los resultados de una búsqueda
Otro ejemplo sobre cómo modificar los resultados que va a devolver WordPress dado un cierto evento. En este caso, por ejemplo, nos interesa que los usuarios que realicen búsquedas en nuestra página web encuentren como resultado únicamente las entradas de nuestro blog. No obstante, WordPress, por defecto, también muestra como resultados las páginas de nuestra web que (cree) están relacionadas con la búsqueda que se ha hecho.
Con este pequeño fragmento de código en el fichero functions.php
, WordPress devolverá únicamente entradas (post_type
tiene que ser post
; es decir, no va a ser page
):
¿Dónde meter las personalizaciones que hemos visto?
Salvo los dos ejemplos con sentencias define
, las cuales hay que meter en wp-config.php
, todos los hacks que hemos visto hay que meterlos en el fichero functions.php
de tu tema. Pero, ¿por qué allí y no en otro lado? ¿Sólo puedes añadir código personalizado en ese fichero?
La verdad es que siempre que veas tutoriales en los que te recomienden meter código en el functions.php
tienes que tener en cuenta que es por comodidad. Prácticamente todos los temas de WordPress incluyen ese fichero, así que si quiero asegurarme de que un wprincipiante cualquiera sepa dónde y cómo meter código en su instalación de WordPress, lo más sencillo es indicarle un fichero que pueda encontrar fácilmente.
No obstante, hay que tener en cuenta que el fichero functions.php
no es siempre la mejor opción. Para empezar, cada vez que tu tema se actualice, también lo hará el fichero en cuestión, con lo cual se perderán todos los cambios. Para evitar esto deberías crear un tema hijo y meter las personalizaciones en el functions.php
del hijo… pero, claro, eso ya no es tan sencillo. Además, si actualizaras el tema hijo (tampoco es tan raro cuando se usan temas framework) volverías a estar en las mismas.
Entonces, ¿cuál es la mejor solución?
Implementando un plugin con todas las funcionalidades
En mi opinión, lo más sencillo es implementar un pequeño plugin donde meter todas las funcionalidades que quieras. Ya sé que he empezado la entrada diciendo que «no es bueno tener demasiados plugins», pero fíjate que en este caso tendrías únicamente uno, el cual contendría todas tus personalizaciones (en lugar de un plugin por funcionalidad).
Crear un plugin es más sencillo de lo que crees. Para el caso que nos ocupa, bastará con que crees un fichero llamado, por ejemplo, mis-funciones-personales.php
con el siguiente contenido:
¡Y ya está! Ya tienes tu primer plugin… que no hace nada. A partir de la línea 11, ve añadiendo los fragmentos de código que hemos visto en la entrada de hoy, mete el fichero en el directorio wp-content/plugins
, activa el plugin y, ahora sí, ya podrás usar estas personalizaciones en tu WordPress.
Actualización 19 de febrero. En uno de los comentarios, @CybMeta comparte otra entrada muy interesante donde explica, con un poco más de detalle, por qué deberías usar plugins en lugar de editar directamente el fichero functions.php
. ¡Te recomiendo que le eches un vistazo!
Resumiendo
WordPress es una herramienta que puede personalizarse hasta el más mínimo detalle. La forma habitual de hacerlo es a través de los plugins que encontrarás en el repositorio oficial de WordPress. No obstante, instalar muchos plugins para realizar pequeños cambios no siempre es aconsejable. Para pequeñas modificaciones, bastará con que añadas tú mismo la funcionalidad que te interese en el fichero functions.php
de tu tema o, aún mejor, crees un único plugin donde meter todas tus personalizaciones.
Imagen de Emyr Jones.
Deja una respuesta