Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
WordPress

Ciclo de carga en WordPress

Una de las primeras cosas que debes tener en cuenta si te vas a poner a desarrollar un tema o plugin para WordPress es su ciclo de cargaflujo de carga. O si estás empezando con WordPress, tener claro desde el principio cómo es el proceso de carga es fundamental.

Cuando hablo de ciclo de carga o proceso de carga me refiero a cómo se va cargando WordPress, cual es el orden de ejecución de su código, su flujo de carga, y saber en qué puntos disponemos de hooks para poder actuar sobre ellos.

He encontrado una infografía muy buena en rarst.net, que aunque bien es cierto no es completamente exhaustiva, al menos da una idea muy aproximada:

ciclo carga wordpress

Por ejemplo en la parte del front end, el fichero que se va a cargar es el index.php que está en la raíz de la instalación de WordPress. En este archivo se declara WP_USE_THEMES y se incluye el archivo wp-blog-header.php, depués wp-load.php, luego wp-config.php y a continuación wp-settings.php.

Después podemos ver que se van declarando actions:

  • muplugins_loaded
  • plugins_loaded
  • setup_theme
  • after_setup_theme
  • init
  • wp_loaded
  • etc…

 

Es muy importante familiarizarse con los actions y con su orden de carga, ya que normalmente cuando estamos creando un plugin o tema nos enganchamos a ellos para «intervenir» en un momento concreto del procesado de la página.

 

Hooks en WordPress

Como decía anteriormente, la infografía no es completa pero sirve para hacernos una idea. El listado completo de hooks y su orden de carga en una típica petición es el siguiente:

  • muplugins_loaded
  • registered_taxonomy
  • registered_post_type
  • plugins_loaded
  • sanitize_comment_cookies
  • setup_theme
  • load_textdomain
  • after_setup_theme
  • auth_cookie_malformed
  • auth_cookie_valid
  • set_current_user
  • init
  • widgets_init
  • register_sidebar
  • wp_register_sidebar_widget
  • wp_default_scripts
  • wp_default_styles
  • admin_bar_init
  • add_admin_bar_menus
  • wp_loaded
  • parse_request
  • send_headers
  • parse_query
  • pre_get_posts
  • posts_selection
  • wp
  • template_redirect
  • get_header
  • wp_enqueue_scripts
  • wp_head
  • wp_print_styles
  • wp_print_scripts
  • get_search_form
  • loop_start
  • the_post
  • get_template_part_content
  • loop_end
  • get_sidebar
  • dynamic_sidebar
  • get_search_form
  • pre_get_comments
  • wp_meta
  • get_footer
  • wp_footer
  • wp_print_footer_scripts
  • admin_bar_menu
  • wp_before_admin_bar_render
  • wp_after_admin_bar_render
  • shutdown

 

También hay hooks específicos para cuando estamos ejecutando una petición desde el back-end o estamos realizando alguna tarea concreta. La información completa la puedes encontrar en el codex. En las dos próximas entradas trataré el tema de los hooks: ¿qué son y cómo sacarles provecho?

Puede que también te interese

WP-CLI Parte 9, paquetes de comandos adicionales
WP-CLI Parte 9, paquetes de comandos adicionales
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…
Cómo añadir nuestras propias opciones multi-idioma en el personalizador de WordPress
Cómo añadir nuestras propias opciones multi-idioma en el personalizador de WordPress
En la entrada anterior veíamos cómo agregar nuestras propias opciones en el personalizador de WordPress. En ésta entrada vamos a ver cómo podríamos organizarlas por…
Lazy load en WordPress para mejorar la velocidad de carga de tu web
Lazy load en WordPress para mejorar la velocidad de carga de tu web
Lazy load, carga diferida o carga perezosa es una técnica que consiste en retrasar la carga de ciertos tipos de contenido como imágenes, vídeos y frames.…
Cómo agregar reCaptcha a un formulario de contacto personalizado en WordPress sin Plugins
Cómo agregar reCaptcha a un formulario de contacto personalizado en WordPress sin Plugins
Vamos a ver cómo podemos agregar reCaptcha a un formulario personalizado en WordPress sin plugins, es decir, en un desarrollo a medida. Para instalar la…