Pulsa ESC para cerrar

Curso WordpressCurso Wordpress

Dónde poner tus snippets en WordPress: functions.php, Code Snippets o mu-plugins

Todos los tutoriales de WordPress terminan igual: «agrega este código a tu functions.php». Es el consejo más repetido y, para quien empieza, uno de los más arriesgados. Hay mejores lugares, y elegir bien te evita perder cambios o dejar tu sitio caído.

Opción 1: el functions.php del tema

Es el archivo wp-content/themes/tu-tema/functions.php. WordPress lo carga en cada visita, así que lo que pongas ahí funciona.

Los problemas:

  • Si editas el tema padre, pierdes los cambios al actualizarlo. La actualización reemplaza el archivo completo.
  • Si cambias de tema, el snippet deja de funcionar, aunque no tenga nada que ver con el diseño (por ejemplo, desactivar XML-RPC).
  • Un error de sintaxis tumba el sitio y, si lo editaste desde el panel, puede que no puedas volver a entrar para arreglarlo.

Cuándo sí usarlo: para código que tiene que ver con el diseño de ese tema en particular, y siempre en el tema hijo, nunca en el padre.

Opción 2: el plugin Code Snippets

Code Snippets es un plugin que te da una pantalla para agregar, activar y desactivar fragmentos de código desde el panel, cada uno con su nombre y descripción.

Ventajas:

  • Detecta errores graves al guardar y no activa el snippet si rompería el sitio.
  • Puedes desactivar un snippet con un clic, sin borrarlo.
  • Puedes elegir dónde se ejecuta: en todo el sitio, solo en el panel o solo en el sitio público.
  • No depende del tema.

Desventajas:

  • Es un plugin más, y el código queda guardado en la base de datos, no en archivos. Es más difícil de versionar o copiar a otro sitio (aunque tiene exportación).
  • Si el plugin se desactiva, todos los snippets dejan de funcionar.

Cuándo usarlo: es la mejor opción para empezar, y para quien administra el sitio sin acceso cómodo a archivos.

Si un snippet de Code Snippets rompe el sitio

Code Snippets tiene un modo seguro: agrega define( 'CODE_SNIPPETS_SAFE_MODE', true ); en wp-config.php. Con eso, ningún snippet se ejecuta, entras al panel, desactivas el culpable y luego quitas la línea.

Opción 3: un mu-plugin

Los mu-plugins (must-use plugins, plugins obligatorios) son archivos PHP que pones en wp-content/mu-plugins/. WordPress los carga siempre, antes que los plugins normales, y no se pueden desactivar desde el panel.

Cómo crear uno:

  1. En el Administrador de archivos, entra a wp-content y crea la carpeta mu-plugins si no existe.
  2. Crea dentro un archivo, por ejemplo ajustes-del-sitio.php.
  3. Escribe tu código empezando así:
<?php
/**
 * Plugin Name: Ajustes del sitio
 * Description: Snippets propios que no dependen del tema.
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

// Quitar la versión de WordPress del código de la página.
remove_action( 'wp_head', 'wp_generator' );

En Plugins verás una pestaña nueva, Imprescindibles (Must-Use), con tu archivo.

Ventajas:

  • Nadie lo desactiva por error, ni siquiera otro administrador.
  • No depende del tema ni de otro plugin.
  • Es un archivo: lo puedes copiar a otros sitios o guardar en un repositorio.

Desventajas:

  • Un error tumba el sitio igual que en functions.php.
  • WordPress solo carga los archivos que están directamente en mu-plugins, no los que están en subcarpetas.
  • No recibe actualizaciones: tú lo mantienes.

Cuándo usarlo: para ajustes que siempre deben estar activos (seguridad, comportamiento del sitio) cuando tienes acceso a archivos y te sientes cómoda o cómodo con PHP.

¿Y si el snippet es grande? Haz un plugin

Si tu «snippet» ya tiene varias funciones, una página de ajustes o archivos CSS, conviene convertirlo en un plugin propio. En la serie Crea tu Primer Plugin de Laboratorio Dev te enseñamos a hacerlo desde cero.

Tabla de decisión rápida

  • ¿Cambia el diseño de tu tema? → functions.php del tema hijo.
  • ¿Estás empezando o no tienes acceso a archivos? → Code Snippets.
  • ¿Debe estar activo siempre y tienes acceso a archivos? → mu-plugin.
  • ¿Es una funcionalidad completa? → tu propio plugin.

Si un snippet en un archivo rompió el sitio

  1. Entra al Administrador de archivos de cPanel.
  2. Abre el archivo donde pegaste el código (functions.php del tema hijo o tu archivo en mu-plugins).
  3. Borra lo que agregaste o, en el caso del mu-plugin, cambia la extensión del archivo a .off.
  4. Recarga el sitio. Para ver qué estaba mal, usa WP_DEBUG_LOG como explicamos en la entrada sobre depuración.

Nunca pegues código en el editor de archivos del panel (Apariencia → Editor de archivos de temas) en un sitio real. Si cometes un error, pierdes el acceso al mismo editor que necesitas para corregirlo. Usa siempre el Administrador de archivos o FTP, que funcionan aunque WordPress esté caído.

¿Tienes snippets repartidos por todos lados? Cuéntanos en el foro dónde los tienes y qué hacen, y te ayudamos a ordenarlos.