Entender cómo funciona WordPress entre bastidores puede ser fascinante. Para la mayoría de los usuarios, parece sencillo: teclear una URL y la página se carga rápidamente. Sin embargo, en realidad ocurren muchas cosas en segundo plano.
Cuando empezamos a trabajar con WordPress hace varios años, hicimos una inmersión profunda en cómo funciona todo. Y ahora, estamos aquí para compartir ese conocimiento contigo en términos sencillos para que puedas entender más acerca de WordPress.
En esta guía, le guiaremos a través del funcionamiento interno de WordPress. También hemos creado una infografía fácil de seguir para que todo quede más claro.
¿Qué es WordPress?
WordPress es un maquetador de sitios web y un sistema de gestión de contenidos. Es un software de código abierto que cualquiera puede utilizar para crear cualquier tipo de sitio web.
Empezó como una plataforma de blogs en 2003, pero pronto se transformó en un CMS y, más tarde, en una plataforma de creación de sitios web. En la actualidad, alimenta más del 43% de todos los sitios web de Internet.
Para saber más acerca de su evolución, historia y ventajas e inconvenientes, consulte nuestra completa guía sobre qué es WordPress y cuánto cuesta crear un sitio con WordPress.
¿Por qué debería aprender cómo funciona WordPress?
WordPress es un software de código abierto, lo que significa que cualquiera puede estudiar su código y escribir sus propias aplicaciones (plugins) y plantillas (temas) para él.
A lo largo de los años, hemos visto cómo innumerables principiantes se convertían rápidamente en usuarios avanzados simplemente aprendiendo cómo funciona WordPress como software.
También le enseñará acerca de cómo mejorar el rendimiento de WordPress y escribir mejor código para sus proyectos.
Esta guía le guiará paso a paso por todo el proceso. Empezaremos cuando un usuario solicite una página y terminaremos cuando esa página esté completamente cargada.
¿Preparados? Primeros pasos.
También puede seguir nuestro tutorial escrito a continuación para obtener más detalles.
1. Cargar archivo wp-config.php
El wp-config.php es el archivo de configuración de WordPress. Establece variables globales para un sitio WordPress y contiene la información de su base de datos WordPress. Por razones obvias, este es el primer archivo que carga WordPress.
Aprenda más acerca del archivo wp-config.php y cómo editarlo.
2. Establecer constantes por defecto
Después de cargar el archivo wp-config.php, WordPress pasará a establecer las constantes por defecto.
Esto incluye información como la ubicación de subida por defecto de WordPress, el tamaño máximo de los archivos y otras constantes por defecto establecidas en el archivo wp-config.php.
3. Cargar archivo advanced-cache.php
Si existe un archivo advanced-cache.php en su sitio, WordPress lo cargará a continuación.
Este archivo actúa como un archivo drop-in y es utilizado por varios plugins populares, particularmente los plugins de caché de WordPress. Si su sitio utiliza este archivo, verá un nuevo elemento en la pantalla Plugins llamado ‘Drop-ins.’
4. Cargar archivo wp-content/db.php
WordPress permite a los desarrolladores crear sus propias capas de abstracción de base de datos y cargarlas en un archivo db.php situado dentro de la carpeta wp-content. Los plugins de caché de WordPress suelen utilizarla para mejorar el rendimiento de la base de datos.
Si su sitio web tiene este archivo, WordPress lo cargará.
5. Conectar MySQL y seleccionar base de datos
Ahora WordPress tiene suficiente información para continuar. Se conectará al servidor MySQL y seleccionará la base de datos.
Si WordPress no puede conectarse a la base de datos, verá el error “Error al establecer la conexión con la base de datos”, y WordPress se cerrará justo aquí.
Si todo funciona correctamente, pasará a los pasos siguientes.
6. Cargar archivo object-cache.php o wp-includes/cache.php
WordPress buscará ahora el archivo object-cache.php. Si no existe, WordPress cargará el archivo wp-includes/cache.php.
7. Cargar archivo wp-content/sunrise.php
Si se trata de una red multisitio, WordPress buscará el archivo sunrise.php si existe en la carpeta wp-content.
8. Cargar biblioteca de localización
WordPress cargará la biblioteca l10n.php en la carpeta wp-includes. Este archivo carga el sistema de localización de WordPress, carga traducciones, establece configuraciones regionales, etc.
Puede consultar nuestra guía sobre cómo utilizar WordPress en otros idiomas.
9. Cargar plugins multisitio
Si se trata de una red multisitio, WordPress cargará los plugins multisitio. Obtenga más información acerca de cómo funcionan los plugins en las redes multisitio de WordPress.
10. Do Acción ‘muplugins_loaded’
Ahora WordPress ejecuta la acción muplugins_loaded. Esta acción solo está disponible para plugins activados en red en un multisitio de WordPress.
11. Cargar plugins activos
WordPress cargará ahora todos los plugins activos en el sitio. Lo hace buscando en la entrada active_plugins de la tabla de opciones de su base de datos de WordPress. Esto permite a WordPress ignorar plugins que están instalados en su sitio pero no activados.
12. Cargar archivo pluggable.php
El archivo pluggable.php contiene funciones que pueden ser redefinidas por plugins de WordPress.
Ahora WordPress verá si otro plugin ya ha definido las funciones dentro de este archivo. De lo contrario, definirá esas funciones por sí mismo.
13. Acción ‘plugins_loaded
WordPress ejecutará ahora la acción ‘plugins_loaded’.
Permite a los desarrolladores enganchar sus funciones para que se ejecuten después de que se hayan cargado todos los plugins activos.
14. Reglas de reescritura de carga
WordPress cargará ahora las reglas de reescritura. Estas reglas de reescritura ayudan a WordPress a utilizar URLs SEO-friendly.
15. Instanciar $wp_query, $wp_rewrite, $wp
En este punto, WordPress carga los siguientes objetos:
$wp_query: La instancia global que contiene la clase WP_Query. Indica a WordPress qué contenido se solicita en un formato de consulta típico de WordPress.
$wp_rewrite: La instancia global que contiene su clase WP_Rewrite. Contiene las reglas y funciones de reescritura, que indican a WordPress qué URL debe usar para mostrar el contenido solicitado.
$wp: La instancia global de la clase WP contiene funciones que analizarán su solicitud y realizarán la consulta principal.
16. Acción ‘setup_theme
Ahora WordPress ejecutará la acción ‘setup_theme’. Esta acción se ejecuta antes de que se cargue el tema de WordPress.
17. Cargar archivo functions.php del tema hijo
El archivo functions.php actúa como un plugin y se utiliza en los temas de WordPress para añadir características específicas del tema a su sitio web. Si estás usando un tema hijo, WordPress cargará el archivo functions . php de tu tema hijo.
De lo contrario, cargará el archivo functions.php del tema activo.
18. Cargar archivo functions.php del tema principal
Si está usando un tema hijo, WordPress cargará el archivo functions.php de su tema padre.
19. Hacer Acción ‘after_setup_theme’
Esta acción se ejecuta después de que WordPress haya establecido el tema y cargado las funciones del tema. Es la primera acción disponible para los temas.
20. Configurar objeto de usuario actual
En este punto, WordPress carga el objeto de usuario actual. Permite a WordPress gestionar la petición de acuerdo con el perfil y las capacidades del usuario.
21. Hacer acción ‘init
WordPress ha cargado hasta ahora toda la información crucial que necesita. Ahora, lanza la acción ‘init’. Esta acción también registra los bloques que están disponibles en el núcleo o proporcionados por cualquier plugin instalado en ese sitio web.
Esta acción permite a los desarrolladores añadir código que debe ejecutarse después de que WordPress haya cargado toda la información mencionada anteriormente.
22. Acción ‘widget_init
La acción widget_init
permite a los desarrolladores registrar widgets y ejecutar el código que necesitan en este momento.
23. Ejecutar wp()
Ahora WordPress llama a la función wp()
, que se encuentra en el archivo wp-includes/functions.php
. Establece los globales de consulta de WordPress $wp, $wp_query, $wp_the_query, y luego llama a $wp->main.
24. Solicitud de análisis
Ahora WordPress tiene toda la información que necesita para analizar la petición del usuario. Comienza por comprobar las reglas de reescritura para que coincidan con la solicitud del usuario.
A continuación, ejecuta filtros de variables de consulta, solicita un gancho de acción y envía una solicitud de cabecera.
25. Ejecutar consulta
Si ningún contenido coincide con la consulta, WordPress establecerá la variable is_404.
De lo contrario, WordPress cargará las variables de consulta.
Entonces ejecutará WP_Query->get_posts().
A continuación, dispara la acción DO_ACTION_REF_ARRAY ‘pre_get_posts’ con el objeto WP_Query.
WordPress ejecutará ahora apply_filters para limpiar la consulta y realizar algunas comprobaciones finales.
Ahora, obtiene entradas de la base de datos y aplica los filtros posts_results y the_posts.
La parte de consulta termina con WordPress devolviendo las entradas.
26. Do Acción ‘template_redirect’
WordPress ejecutará ahora la acción template_redirect
. Este gancho se ejecuta justo antes de que WordPress determine qué página de plantilla cargar.
27. Plantilla de carga de feed
Si el contenido solicitado es un feed RSS, entonces WordPress carga la plantilla del feed.
28. Plantilla de carga
WordPress buscará el archivo de plantilla basándose en la jerarquía de plantillas de WordPress. A continuación, carga la plantilla, que normalmente contiene un bucle de WordPress.
29. Hacer Acción ‘apagar’
Justo antes de finalizar toda la ejecución de PHP, WordPress lanza la última acción llamada shutdown.
WordPress deja de funcionar aquí. Ha ejecutado el código y generado la página web solicitada por el usuario.
Ahora, su servidor de alojamiento web responde a la solicitud de un usuario enviándole la página web generada por WordPress.
Esta página contiene código HTML, CSS y JavaScript, que indica al navegador del usuario cómo mostrarla en pantalla.
Increíble, ¿verdad? Todo esto ocurre en milisegundos. Si utiliza uno de estos mejores servicios de alojamiento de WordPress, lo ideal es que su página se cargue en un par de segundos.
Esperamos que este artículo te haya ayudado a aprender cómo funciona WordPress entre bastidores. Puede que también quieras ver nuestros consejos sobre cómo proteger el área de administrador / administración de WordPress o echar un vistazo a esta guía con prácticos consejos, trucos y hacks de WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
MJB
hm – I am kind of missing step 0
so is this a correct assumption`?
a URL comes in at my hosted webserver
requesting let’S say my home page
then the webserver fires up step (1) ?
which then runs until step (24)
where WP parses the incoming URL to figure out next steps?
WPBeginner Support
Step 0 can certainly be a URL linking to the site, around step 15 is where the specific page would be considered.
Administrador
Mike Ross
What about index.php in the root?
I don’t get it…There are guides out there that lay out a totally different sequence of WordPress initialization.
WPBeginner Support
Index.php would be for the theme files, we cover the theme hierarchy in our guide below:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Administrador
Mike Ross
No, I’m not talking about the theme’s homepage template. I’m taking about the index.php at the root, which is a part of the WordPress core. It triggers wp-blog-header.php, which then loads wp-load.php which sets up the entire WordPress environment.
WPBeginner Support
The index.php in the root folder tells WordPress to load your theme
Administrador
Terry Woods
That is correct
Jason
Why start from wp-config.php ? I thought it was from index.php
WPBeginner Support
That would be for themes and not WordPress itself, for the index.php you would want to take a look at the template hierarchy in our guide below:
https://www.wpbeginner.com/wp-themes/wordpress-template-hierarchy-explained/
Administrador
Petru Ciucur
This is THE Article. Thanks !
WPBeginner Support
Glad our guide was helpful
Administrador
Juan Johnson
HI wpbeginner.
I noticed that in your sequence, you mentioned that wp does this and then that. Physical, where is the instance of wp()? On the server? Does this happens in between an initial load page post request when I use google browser and the final loading of the wp dashboard after login?
WPBeginner Support
You may want to take another look at the infographic for understanding the loading and how it works.
Administrador
Juan Johnson
I am a programmer. I am getting more into the web page design, however, I cannot let go of wanting to know what is going on behind the scenes. You article has given me a foundation to start confidently constructing web pages.
WPBeginner Support
Glad our guide was helpful
Administrador
Paul McDevitt
This is brilliant. Ran into several issues with old, expired plugins, updating PHP, etc, and a virus (probably because of the prior items.) So all locked down and scrubbed up now, but wanted to understand better the sequence of events as looking into any one PHP file is like trying to read a bowl of spaghetti, as I did not understand the sequencing of the activities. So absolutely amazing. Love this.
Thanks
WPBeginner Support
Glad our article was helpful
Administrador
Naresh
very clear article.
WPBeginner Support
Thank you
Administrador
Chinenye
I want to really know what wordpress does, how can I make and share posts through word press? What does it do for me apart from creating a site?
WPBeginner Support
WordPress allows you to create a site without needing to have knowledge of HTML and CSS. For sharing your posts, you would normally want to take a look at social media plugins: https://www.wpbeginner.com/plugins/best-social-media-plugins-for-wordpress/
Administrador
ganesh
very interesting
Adrian
Interesting but not really a definition of how Wordpress works. This describes what it does, not how it does it. Would be useful to also know how it does things as well as what it does. For example how does it know which theme to load? Without the how all the above is very high level.
amir saleem
17. Load Child Theme’s functions.php File
The functions.php file acts as plugin and is used in WordPress themes to add theme specific features to your website. If you are using a child theme, then WordPress will now load your child theme’s functions.php file.
Otherwise, it will go on and load your current active theme’s functions.php file.
18. Load Parent Theme’s functions.php File
[ If you are using a child theme ], then WordPress will now load your parent theme’s functions.php file.
check the text in brackets and match all the wording here will be replace [ if you are using a parent theme ].
Thanks.
Caleb
Amir, I think what the OP is trying to say is that if there is a child theme, then obviously there would be a parent and child functions.php and wordpress first loads the child themes functions.php before loading the parent’s. Otherwise, it just loads the parent’s functions.php straightaway.
Altab Hossen
Thanks for this nice explanation and info-graphics is so cool !!
Kristian
And people wonder why WordPress sites are slow. It does all that at run-time for every single page view!
Johnpaul Onwueme
Thanks for the info graphics
deborah
still seems complicated to me, but all tech does
Jason
Would you be willing to offer this as a printed poster? I don’t know if it would generate much interest or make you any money, but since it is such a nice graphic it might make a nice office wall hanging.
anis
Thank you for this article . I wanted to know since long time
the different steps for loading .
What is a database abstraction layer and how to configure it ?