Tabla de contenido
Conocer la estructura de carpetas y archivos de WordPress es casi algo obligado, pues te ayuda a saber donde están muchos elementos que te harán falta si es que llegas hasta a este nivel, sea para configurar algo o hacer algo manual. WordPress viene de paquete con ciertas carpetas y archivos importantes que necesitas conocer; en el proceso también aprenderás cosas interesantes de como funciona WordPress, y que nunca están de más para salir del paso en ciertas situaciones específicas. Pues bien, empecemos: cuando descargas WordPress de wordpress.org viene en un archivo con formato ZIP o TAR que dentro tiene una estructura más o menos como la que ves en la figura 1.
En esa figura puedes ver una estructura que representa todas las carpetas y archivos de una distribución estándar de WordPress; en este caso, es la más actual al día, la de WordPress 5.6, pero hay que decir que no cambia con mucha frecuencia. En la figura 1 podrás apreciar que algunas carpetas vienen encerradas en un recuadro punteado y con fondo rojo; esas carpetas y archivos son los que juntos forman la distribución que descargas del core de WordPress, es decir, el conjunto de archivos que vienen “de fábrica” y que proveen toda la funcionalidad de nuestro CMS favorito. Ya de entrada te lo adelanto, los archivos del core NO deben ser modificados, pues con cada actualización de dicho core se sobreescriben, con lo cual perderías dichos cambios; como ya hemos visto en otro artículo, WordPress tiene su propia forma de que puedas añadir tus propios cambios sin perderlos.
Pues bien, como puedes ver, todo parte de una raíz: esa raíz es la carpeta de tu hosting donde pones los archivos que son del sitio que alojan; por lo general esa raíz es la carpeta public_html
, que es la raíz web del dominio principal. En pocas palabras, cuando alguien teclea en la caja de direcciones de un navegador la URL de tu sitio, el servidor busca en esta carpeta los archivos necesarios. Dentro de esta carpeta es donde encontraremos nuestros archivos de WordPress. Más adelante menciono que métodos puedes usar para accesar estos archivos o carpetas.
Nota: se puede alegar que license.txt
y readme.html
no son parte del core, sino sólo parte de la distribución de software, no pasa nada en realidad con pensar en ellos de una u otra manera.
Estructura de carpetas y archivos de WordPress
A continuación va un intento de una estructura de carpetas y archivos más o menos interactiva que representa la estructura de WordPress; puedes hacer clic en los elementos para ver las descripciones y así conocer más sobre ellos. Pero antes, lo que significan los íconos:
- indica que pertenece al core de WordPress
- indica que es peligroso hacerle cambios a esta carpeta o archivo
- indica que es un archivo fuente de PHP
- indica que es un archivo de texto
- indica que es un archivo HTML
- indica que la carpeta o archivo requiere protección
Ahora si, las carpetas y archivos: quizás algunos no entiendas para que son, con el tiempo quedará claro su utilidad:
Folders o carpetas
Folder wp-admin
La carpeta wp-admin
contiene todos los archivos necesarios para la parte de administración de WordPress; ya te imaginarás la importancia de esta carpeta, por lo que entenderás que no debe de ser tocada bajo ninguna circunstancia.
Folder wp-content
La carpeta wp-content
es la encargada de almacenar la gran mayoría del contenido que cambia de tu sitio: plugins, temas, caché y cargas de medios básicamente; puedes y seguramente en algún momento necesitarás meterte con esta carpeta, eso si, si sabes lo que haces. Cuando lo instalas contiene varias carpetas importantes:
- Folder
themes
: Esta carpeta es similar a la de plugins, pero ahora contiene todos los archivos de código fuente y otros medios de tus temas; se ordenan en carpetas que se llaman como el cada tema, como puedes ver a continuación: - Folder
plugins
: Esta carpeta contiene todos los archivos de código fuente y otros medios de tus plugins; se ordenan en carpetas que se llaman como el plugin, como puedes ver a continuación:El nombre de la carpeta es muy importante; tan es así que si el plugin ya está activado y renombras la carpeta, este se desactiva, lo cual es una forma efectiva de desactivar plugins de manera rápida. Para llegar hasta aquí y ver las carpetas tendrías que entrar con un cliente de FTP o a través del manejador de archivos del administrador de tu hosting.
- [Opcional] Folder
muplugins
: aquí encontrarás el código fuente de los plugins imprescindibles, una categoría de plugins especial que se ejecutan automáticamente al arranque del sitio y básicamente sin interacción de un usuario. - Folder
languages
: aquí encontrarás archivos de localización de plugins y temas de WordPress. Internamente es una de las carpetas donde WordPress busca traducciones, pero ese es un tema de desarrollo que no cubriré aquí. - Folder
uploads
: ¿Has subido algún archivo a tu WordPress? seguramente terminó en una carpeta dentro de esta; aquí pone WordPress todo lo que subas para tus entradas, organizándolos en una estructura jerárquica de año/mes (2 dígitos) que aunque no es gran cosa, permite mantener cierta organización en la carga de archivos;- Si es una instalación multisitio, dentro de
uploads
verás también una carpetasites
, donde dentro tiene una carpeta por cada sitio adicional (nombrada con un entero), y dentro de nuevo la estructura de año/mes donde encontrarás los archivos.
- Si es una instalación multisitio, dentro de
- Folder
upgrade
: es un folder donde WordPress almacena contenido temporal de actualizaciones de varios componentes de WordPress, incluído WordPress mismo.
Folder wp-includes
Esta carpeta contiene todas las librerías compartidas entre todos los módulos core de WordPress, aquí encontrarás estilos, fuentes JavaScript, php, etc. Al igual que wp-admin, es de vital importancia para WordPress y no es buena idea tocar su contenido.
Archivos
Archivo .htaccess
Este archivo no es parte de la distribución de WordPress, pero es muy importante y quizás lo veas por ahí en tu carpeta; en instalaciones nuevas, se crea cuando modificas la estructura de permalinks a cualquier cosa que no sean los links “feos”, es decir, los que terminan en ?p=132
o algo similar. Al archivo .htaccess
lo verás en hostings que funcionan con el servidor web Apache, y sirve para configurar el comportamiento del mismo en temas como reescritura de enlaces, caché de navegador y otros temas más. Es un archivo delicado y un error aquí te tira el sitio, así que cuidado cuando lo edites.
Archivo index.php
El archivo de índice de este sitio, usado para cargar todo lo demás.
Archivo license.txt
WordPress es un proyecto de fuente abierta con licencia GPL v2, y una de las disposiciones de esta licencia es que se distribuya una copia de la misma con cada copia de WordPress. En el caso de distribuciones en español, viene en español e inglés.
Archivo readme.html
Un archivo “léeme” con información de WordPress que pudiera ser útil, como la instalación de 5 minutos, como actualizar, migración, requerimientos y otros recursos en línea.
Archivo wp-activate.php
Sirve para confirmar que la llave que se manda por correo a los usuarios que se registren en el sitio (si esto está permitido claro) es la misma que está registrada, y activarla.
Archivo wp-blog-header.php
Carga el ambiente de WordPress y el template activo.
Archivo wp-comments.php
Se encarga de la función de comentar, así como de evitar duplicados.
Archivo wp-config.php
Este archivo es una copia con nombre distinto de wp-config-sample.php
. Este archivo es quizás el más importante en toda la distribución de WordPress, y eso es porque contiene toda la configuración básica, como nombre de usuario y password de la base de datos, sales de encriptación para passwords, y demás configuraciones críticas. Extrema cuidados con este archivo y sigue las recomendaciones de protección.
Archivo wp-config-sample.php
Template de archivo de configuración, en instalaciones nuevas tiene que ser renombrado o hacer una copia y nombrarlo wp-config.php. Leer el anterior para comprender bien para que sirve.
Archivo wp-cron.php
En sistemas UNIX y derivados (como Linux), cron es un mecanismo para programar la ejecución de un proceso en segundo plano; puesto que debido a limitaciones propias de los proveedores de alojamiento en particular de planes de hosting compartido no siempre se tiene acceso a cron, WordPress trae este “meta cron” que sirve como un reemplazo para el cron del sistema operativo; a diferencia del primero, el cron de WordPress se dispara con las visitas del sitio.
Archivo wp-oml.php
Contiene funciones para la gestión de links y también para exportarlos.
Archivo wp-load.php
Establece el valor de la constante del directorio base de WordPress y carga varios archivos de configuración y ambiente de WordPress.
Archivo wp-login.php
Aquí van varias funciones de autenticación, registro, reseteo de contraseña, contraseña olvidada, y otras más, siempre relacionadas con manejo de usuarios.
Archivo wp-mail.php
Funciones de soporte para la publicación de entradas por correo electrónico.
Archivo wp-settings.php
Inicializa variables comunes y la librería de clases de WordPress.
Archivo wp-signup.php
Contiene el soporte para el registro de usuarios al sitio.
Archivo wp-trackback.php
Añade soporte para trackbacks y pingbacks; ambos son un mecanismo para comunicarse entre blogs cuando se hace referencia entre ellos, el primero de forma manual y el segundo de forma automática.
Archivo xmlrpc.php
Implementa el protocolo XML-RPC para WordPress; este protocolo usa el protocolo HTTP para transportar datos y XML para codificarlos, y se emplea en aplicaciones externas que interactúan con WordPress. Valga la pena mencionar que la implementación de WordPress de este protocolo ha servido en su mayoría para dolores de cabeza relacionados con seguridad, y muchos recomiendan deshabilitarlo, aunque debes tener cuidado porque hay servicios que aún lo usan, como por ejemplo JetPack para gestionar la conexión con wordpress.com .
¿Cómo accesar a las carpetas y archivos de WordPress?
Hay varios métodos:
- FTP: éste es el método más antiguo y uno que personalmente no te recomiendo usar para accesar carpetas y archivos de WordPress, sobre todo porque hay métodos más modernos y cómodos, y sin mencionar que FTP es un protocolo muy viejo que prácticamente ya está muerto, y no creo que le queden muchos años de servicio. Sin embargo ahí está, y lo mejor es usar variantes seguras como FTPS (el menos recomendado) o SFTP (el más recomendado), y usando un cliente seguro y robusto como WinSCP.
- Panel de hosting: el manejador de archivos incluido en los gestores de tu hosting, como CPanel o DirectAdmin, es más que competente para poder hacer cualquier tarea relacionada con las carpetas y archivos de WordPress – y mucho más aún. Si tu hosting no ofrece un manejador de archivos…quizás sea hora de buscar un hosting mejor.
- SSH: mi método favorito, accesas usando un cliente de SSH (como por ejemplo el popular PuTTY) que básicamente es una línea de comandos, donde tienes a tu disposición todos lo necesario para gestionar cualquier tarea con carpetas y archivos de WordPress, y de nuevo, es el que ofrece la mayor versatilidad, eso si, a cambio de que tendrás que aprender más cosas para gestionar eficientemente tu instalación de WordPress.
Vale la pena mencionar que en algunas instalaciones de CPanel hay un acceso SSH a través del navegador, es decir, una ventana de comandos empotrada en una vista de navegador; en mi caso lo encontré en el hosting Bluehost de un cliente, y decir verdad funciona bastante bien y te saca del apuro.
¿Cómo puedo comprobar la integridad de carpetas y archivos de WordPress?
Un tip (que a lo mejor es algo avanzado para el artículo) es que periódicamente revises si la integridad de los archivos de tu instalación de WordPress para saber si no han sido tocados; ésta a la vez, es una de las razones por las que no hay que tocar los archivos del core de WordPress; si lo haces, ¿cómo sabes que la modificación detectada es tuya o de un malandro? no hay forma. La única forma es conservando los archivos tal cual los descargaste, y periódicamente correr un chequeo contra los originales, y entonces puedes darte cuenta fácilmente de que tienes un problema.
Hay varias formas de implementar un chequeo de integridad de archivos del core:
- A través de un plugin de seguridad: Wordfence y iThemes Security lo hacen, sólo por mencionar algunos.
- Si tu hosting ofrece WP-CLI (un procesador de línea de comandos para WordPress), conéctate por SSH y ejecuta el comando
wp core verify-checksums
Si todo está bien, recibirás una línea de respuesta que empieza con “Success”; cualquier otra significa que tienes problemas con la integridad de los archivos; revisa la salida del comando para saber que archivos son los afectados, y si está dentro de tus capacidades, reparar el fallo.
Particularidades de la carpeta /wp-content/plugins
- Si renombras la carpeta de un plugin activado, equivale a desactivarlo. Es una forma de último recurso cuando sabes que un plugin te da problemas. Sin embargo, la activación es desde la interfaz – recuerda regresar el nombre de la carpeta a su original.
- De igual manera, si renombras la carpeta raíz
/wp-content/plugins
y pones un carpetaplugins
nueva y vacía, desactivas todos los plugins. Este sí es un último recurso cuando el sitio se cae y no sabes por donde te dieron el golpe. - Si lo deseas, puedes subir directamente un plugin y descomprimirlo, después ve a tu escritorio de WordPress al gestor de plugins y verás que aparece ahí.
Particularidades de la carpeta /wp-content/themes
- Al igual que los plugins, si renombras la carpeta de un tema lo deshabilitarás; sólo recuerda dejar un tema de respaldo (alguno de los que trae WordPress de paquete, los Twenty-algo).
- Si lo deseas, puedes subir un tema y descomprimirlo, después ve a tu escritorio de WordPress al gestor de temas y verás que aparece ahí.
- Si bien puedes borrar las carpetas, ten cuidado con los temas hijos, que son aquellos que dependen de un tema principal. Los identificarás porque son dos carpetas que tienen un nombre base idéntico (digamos
generatepress
– el mejor tema para WordPress por cierto), y una de ellas tiene anexado “-child
“; en pocas palabras, verás las carpetasgeneratepress
ygeneratepress-child
. Obviamente ten cuidado de no borrar el padre y dejar el hijo.
Particularidades de la carpeta /wp-content/uploads
- No sólo encontrarás las carpetas que se mencionaron en su sección correspondiente; la carpeta
uploads
sirve de depósito para muchos archivos, como por ejemplo para plugins de caché, pues es uno de los lugares predilectos de muchos plugins de este tipo para guardar sus archivos, así como muchos otros tipos de plugins que crean carpetas personalizadas.
Palabras finales
Conocer la estructura de carpetas y archivos de WordPress es escencial, aunque no lo creas; te permite ir a otros temas con facilidad, temas que van desde actualizar plugins, temas, hasta cuestiones de seguridad, y claro, conocer esta estructura te da el conocimiento de que tocar y que no. Mi consejo es que montes un entorno local para pruebas y juegues con una instalación para aprender todos los recovecos de WordPress.
Orlando es un ingeniero en sistemas de 45 años de edad, apasionado del desarrollo de software y con un cariño especial por WordPress. Le encantan los libros, la música, la fotografía, los cómics y es un AFOL. De último pero no menos, esposo y padre de dos trolls.