¿Cómo funciona WordPress?
Vamos a adentrarnos en el funcionamiento interno de WordPress
No es posible usar WordPress sin entender los conceptos básicos. En este artículo nos centraremos en explicar los principios básicos de cómo funciona WordPress de manera sencilla.
Ya vimos anteriormente qué es WordPress, y ahora vamos a comprender cómo funciona WordPress visto desde diferentes niveles. Pero antes tenemos que entender los siguientes conceptos fundamentales.
💻 Conceptos básicos para entender cómo funciona WordPress
El objetivo final de WordPress, es generar páginas HTML de manera dinámica. El término clave a entender aquí es «dinámica».
Mientras que los sitios web antiguos eran todos estáticos, hoy en día casi todos han llegado a apreciar el valor de mantener un sitio web dinámico utilizando un sistema de gestión de contenidos (CMS) como WordPress.
Es necesario comprender la diferencia entre sitios web estáticos y dinámicos. Pero antes de entrar en detalles acerca de cada tipo de sitio web, hay que tener claro cómo Internet sirve las páginas web en primer lugar.
La comunicación en Internet implica un servidor y un navegador web.
Para establecer una conexión entre ambos, se utiliza un conjunto de reglas llamado Protocolo de Transferencia de Hipertexto (HTTP). En pocas palabras, el navegador web transmite una solicitud HTTP al servidor y éste responde con una respuesta HTTP junto con la página web solicitada en HTML.
Veamos cómo se puede generar la respuesta ofrecida por el servidor web.
⌨️ Páginas web estáticas
En los sitios web estáticos cada página se codifica individualmente y luego se sube al servidor. Suelen tener un número fijo de páginas con un diseño específico y ofrecen el mismo contenido preconstruido cada vez que se carga la página.
Cuando la página se ejecuta en un navegador, el contenido es literalmente estático y no cambia en respuesta a las acciones del usuario.
Un sitio web estático suele crearse con código HTML y CSS, que define la estructura y el contenido de la página Web. Cada vez que se carga una página HTML, ésta tiene el mismo aspecto.
La única forma en que el contenido de una página HTML estática cambiará es si el desarrollador Web actualiza y publica el archivo. Esto implica que si, por ejemplo, queremos cambiar el logotipo de la web, tendremos que hacer el cambio en todas y cada una de las páginas que componen la web.
⌨️ Páginas web dinámicas
Un sitio web dinámico, por el contrario, es aquel que puede mostrar diferentes contenidos. Permite a los usuarios interactuar con la información que aparece en la página, haciendo uso de programación avanzada y bases de datos además de HTML.
Los sitios web estáticos utilizan únicamente código HTML y CSS del «lado del cliente», mientras que los sitios web dinámicos se basan en lenguajes de programación del lado del cliente y del «lado del servidor», como JavaScript, PHP o ASP.
El lenguaje del lado del cliente se refiere al código que ejecuta el navegador del usuario, generalmente con JavaScript. Mientras que el lenguaje del lado del servidor se refiere al código que ejecuta el servidor web antes de que el contenido sea enviado al navegador del usuario.
El contenido de la página web se genera «sobre la marcha» a partir de la información guardada en la base de datos. El lenguaje del lado del servidor recupera la información de la base de datos, generando el contenido de la página a partir de la información almacenada en la base de datos.
Siguiendo el ejemplo anterior, con un CMS como WordPress haciendo un pequeño cambio en el panel de administración, el logotipo del site cambia automáticamente en todas las páginas de la web.
💻 Desarrollo de WordPress
A un nivel muy básico, WordPress está desarrollado con dos lenguajes para funcionar en el servidor web: PHP y MySQL. El lenguaje PHP constituye el núcleo de WordPress, y la base de datos SQL constituye la memoria de WordPress, y es donde almacena todos sus datos.
⌨️ PHP
PHP es el lenguaje que convierte a WordPress en un sistema dinámico. PHP es un lenguaje del lado del servidor, lo que significa que se ejecuta en el servidor web antes de que una página sea servida al navegador del usuario.
PHP es en realidad uno de los lenguajes más populares en la web hoy en día, en parte debido a la popularidad de WordPress en sí mismo.
Es muy bueno para añadir información a las bases de datos y extraer información de ellas en base a un criterio determinado. Desde aquí, esa información puede ser insertada en una página HTML.
⌨️ MySQL
Por otro lado, MySQL es un sistema de gestión de bases de datos relacionales de código abierto, que puede compararse con el trabajo con una hoja de cálculo compleja que archiva los datos bajo múltiples encabezados relacionados.
MySQL es el segundo sistema de gestión de bases de datos más utilizado en el mundo y es extremadamente rápido en responder a las consultas.
Los usuarios a través de WP tienen acceso a la base de datos donde se pueden crear, actualizar, leer y borrar datos de todo tipo. Algunos ejemplos son:
💻 Entonces, ¿Cómo funciona WordPress?
Viendo los siguientes puntos se podrá tener una mejor comprensión de cómo funciona WordPress.
Cuando hablamos de cómo funciona WordPress, tenemos que distinguir dos partes en WordPress: La Pública y la Privada. Puedes comparar esto con la zona pública y la trastienda de cualquier negocio. La parte delantera del sitio es lo que el visitante ve en su navegador, mientras que la parte trasera es desde donde se administra el contenido.
👨💻 Área de administración o dashboard
El panel de administración o dashboard proporciona una interfaz sencilla para que los propietarios de la web puedan gestionar el contenido fácilmente.
Se llega al panel de administración de WordPress añadiendo /wp-admin
a la URL principal del dominio (dominio.com/wp-admin
). Trabajar desde el panel de control del site, se denomina trabajar en el «Back-End» del sitio.
Desde el dashboard, WordPress permite incorporar una gran variedad de temas y plugins para conseguir cualquier funcionalidad necesaria para el sitio.
⌨️ Temas
El tema que se elija determina el aspecto del sitio. El tema consiste en archivos PHP con HTML, CSS y Javascript, todos trabajando juntos para mostrar el site de una manera única. Se puede cambiar el tema sin afectar el contenido.
⌨️ Plugins
Los plugins de WordPress son fragmentos de código que amplían la funcionalidad del sitio WordPress. Añaden funciones como un e-commerce, calendarios de programación y análisis de los visitantes del sitio.
Los plugins le ayudan en una amplia gama de tareas como subir, gestionar o manipular imágenes, documentos, audio, vídeo y mucho más.
💻 Funcionamiento interno de WordPress
Para entender cómo funciona WordPress, debemos conocer el funcionamiento interno de las diferentes piezas que componen este CMS.
WordPress tiene los siguientes cuatro componentes que interactúan entre sí para crear una página HTML.
⌨️ Archivos del core de WordPress
Estos son los archivos que forman parte del paquete de instalación descargado de WordPress.org. Dado que WP es gratuito y open source, se puede descargar el paquete para ver los archivos principales que tiene y entender mejor cómo funciona wordpress.
Durante la instalación, el contenido de estos archivos centrales se cambiará dinámicamente según sea necesario. Por ejemplo, habrá un nuevo archivo wp-config.php
creado con el nombre de usuario, contraseña y otros parámetros de configuración basados en la base de datos.
⌨️ Archivos del tema
Los archivos del tema controlan la visualización y generan el contenido que se mostrará en el navegador cuando se solicite una URL.
Todos los archivos de temas se almacenarán en la carpeta principal de WordPress /wp-content/themes/
. Cada tema tiene una carpeta separada y contiene muchos archivos PHP, al menos una hoja de estilo y archivos JavaScript.
⌨️ Archivos de plugins
Los archivos de núcleo, tema y base de datos son obligatorios, mientras que los plugins son opcionales para añadir características adicionales al sitio WordPress.
Como WordPress tiene una notable división entre el tema y los plugins es casi inevitable tener plugins para añadir funciones. Por ejemplo, compartir en las redes sociales no suele ser parte de la definición del tema y por lo tanto suele necesitar un plugin separado para tener botones de compartir en redes sociales.
Los archivos de todos los plugins instalados se almacenarán en la carpeta principal /wp-admin/plugins/
y cada plugin se almacenará en una carpeta separada. Cada plugin puede tener un conjunto de archivos PHP, script y CSS.
El paquete de descarga del núcleo de WordPress tiene dos plugins predeterminados: Akismet y Hello Dolly.
⌨️ Base de datos
La base de datos es el componente más importante del sitio de WordPress, ya que tiene todo el contenido y los parámetros de control.
Cada vez que se solicita una página, el contenido se recupera en base a los parámetros de control y la salida deseada se muestra en el navegador. Por ejemplo, cuando se crea una entrada de blog, todo el contenido de texto se almacena en tablas de la base de datos con referencia a las imágenes y vídeos vinculados en esa página.
WordPress utiliza MYSQL, una herramienta de código abierto para la creación de bases de datos. La base de datos de cada instalación de WordPress puede gestionarse a través de la cuenta de alojamiento utilizando las herramientas «Base de datos MySQL» y «phpMyAdmin».
Es importante entender que las tablas de la base de datos no pueden ser administradas a través de FTP mientras que los archivos de núcleo, tema y plugin pueden ser accedidos a través de FTP.
💻 Anatomía de una petición de WordPress
¿Qué pasa cuando alguien ve tu página web?
Cuando alguien visita un sitio web creado con WordPress, este genera dinámicamente un código HTML combinado con CSS y JavaScript, y lo sirve al visitante.
No verás la extensión .html
al final de la URL, como se podía ver en los sitios web antiguos, ya que este contenido es generado dinámicamente.
Los siguientes puntos son una generalización de las acciones que tienen lugar cuando se realiza una petición a la página web:
Del mismo modo, cuando se publica o se guarda un post, o se envía un comentario, o se realiza una búsqueda, el núcleo de WordPress realiza las operaciones internas necesarias y las guarda en la base de datos para su uso futuro. También notifica al administrador del WordPress.
El administrador los ve como un nuevo comentario en espera de moderación, o ‘x’ número de comentarios en su cola de spam, etc.
⌨️ Solicitud en HTML
Ahora bien, repetir todos estos pasos cada vez que alguien solicita una página web (publicación, página, página de archivo, cualquier cosa) es un trabajo que consume demasiado tiempo y recursos.
No resulta un problema cuando 10 personas visitan el website. Pero si lo aumenta en 100, 1000 o un millón, entonces comienza el verdadero problema. Sólo las supercomputadoras serían capaces de manejar tantas operaciones simultáneas.
Entonces, ¿qué hacemos ahora? Habrá que cachear WordPress, pero esto no lo cubriremos aquí, lo veremos en otro post dedicado a este tema.
🗃️ Estructura de carpetas de WordPress
Los archivos propios de WordPress en el servidor. Esto contiene los archivos con el código real de WordPress (conocido como el Core), junto con archivos de temas, archivos de plugins, CSS y similares.
🗂️ Directorio Raíz de WordPress
Este es el directorio de instalación de WordPress y es donde están todos los archivos que conforman el CMS, además de la base de datos. Lo llamaremos el «directorio raíz».
En el caso de personas que ejecutan WordPress en servidores de alojamiento compartido impulsados por cPanel, el directorio raíz es muy probable que se llame public_html
, si se está ejecutando WordPress en el dominio base, es decir, dominio.com
y no dominio.com/directorio
.
Desde la versión 3.6.1 de WordPress, hay tres carpetas principales en el directorio raíz de cada instalación: wp_content
, wp_includes
y wp_admin
junto con otros archivos PHP, siendo el más significativo wp_config.php
.
Modificando este archivo, podemos añadir un montón de opciones de personalización del núcleo de WordPress que no están disponibles en el panel de control del administrador de WordPress. Por ejemplo, podemos deshabilitar las revisiones de los post, establecer el nombre del sitio utilizado por WordPress (útil para cambios de dominio), habilitar el modo de mantenimiento, etc.
El fichero wp-config.php
es un fichero muy importante y no debería ser manipulado. Contiene información crucial como las credenciales de acceso a su base de datos de WordPress. Si alguien puede acceder a la base de datos, tendría el control completo del sitio.
¿Y qué pasa con las imágenes, documentos y otros archivos que se suben? ¿Están también almacenados en la base de datos de WordPress? No. Están almacenados en una carpeta llamada wp_content
.
📁 wp_includes
Esta carpeta contiene todos los demás archivos y clases de PHP que se requieren para las operaciones centrales de WordPress. De nuevo, no se debe editar ningún archivo en este directorio.
📁 wp_admin
Esta carpeta contiene los diferentes archivos del panel de administración de WordPress. Todas las funciones administrativas o relacionadas con WordPress, como escribir posts, moderar comentarios, instalar plugins y temas, se realizan a través del panel de control de WordPress.
Sólo los usuarios registrados pueden acceder aquí, y el acceso está de nuevo limitado en función del perfil del usuario. Un administrador permite el acceso completo, seguido por el Editor, luego el Colaborador y finalmente el Suscriptor. El panel de control de WordPress es accesible en la URL dominio.com/wp-admin
.
📁 wp_content
La carpeta wp_content contiene todos los datos cargados por el usuario y se divide de nuevo en tres subcarpetas:
📂 wp_content/themes
El subdirectorio wp_content/themes
contiene todos los temas que están instalados en el sitio de WordPress. Cada archivo .zip que te descargas desde WordPress.org tiene instalados 2 temas por defecto. Sin embargo, puedes instalar tantos temas como quieras.
Por defecto sólo puedes tener activo un tema a la vez, aunque existen algunos plugins que te permiten activar más. Además, themes
nunca puede estar vacío, ya que WordPress necesita al menos un tema para funcionar.
📂 wp_content/plugins
De manera similar, la subcarpeta wp_content/plugins
se utiliza para almacenar todos los plugins instalados en WordPress. A diferencia del directorio themes
, este directorio puede estar vacío ya que se puede ejecutar perfectamente un sitio de WordPress sin usar ningún plugin.
Aunque se pueden activar tantos plugins como se quiera, es una buena práctica instalar sólo los necesarios.
📂 wp_content/uploads
Todas las imágenes y demás archivos de medios que se han subido a la web, junto con todas las futuras subidas, se almacenan en el subdirectorio wp_content/uploads
, clasificadas por año, mes y día.
Esta carpeta puede considerarse como la base de datos de todos los datos no textuales: imágenes, PDF, vídeos, MP3, etc. Por eso es una buena práctica de seguridad restringir el acceso público a estas carpetas. Esto se puede lograr modificando el archivo .htaccess
, dentro del directorio wp_content
.
Conclusiones sobre cómo funciona WordPress
Entender cómo funciona WordPress te ayudará a sacar el máximo partido a este CMS. Si quieres ser un desarrollador es imprescindible entender los conceptos básicos sobre los que se contruye esta plataforma
Puede ser un poco abrumador al principio, pero con el apoyo de la gran comunidad online y los diferentes artículos sobre WordPress, seguro que serás guiado hacia el camino correcto.
Desde Lógica7web.es esperamos haber resuelto tus dudas sobre cómo funciona WordPress. Si te ha gustado nuestro pequeño artículo te invitamos a que lo compartas en tus redes sociales favoritas.