Crear un admin AJAX personalizado y más ligero en WordPress

WordPress ofrece admin-ajax.phppara manejar solicitudes AJAX, pero puede ser demasiado pesado para ciertas aplicaciones, ya que carga todo el núcleo. Si deseas algo más ligero, puedes usar SHORTINIT. A continuación, te mostramos cómo implementar un archivo personalizado llamado custom-admin-ajax.php.

¿Qué es SHORTINIT?

SHORTINIT es una constante en WordPress que limita la cantidad de funcionalidades cargadas. Cuando se define como true, sólo se cargan los siguientes elementos:

  • El archivo wp-load.php.
  • Funciones básicas de WordPress como wpdbwp_safe_redirect, y sanitize_text_field.
  • La conexión a la base de datos y las utilidades esenciales para trabajar con datos.

Esto hace que las solicitudes sean mucho más rápidas, ya que evita cargar el sistema completo de WordPress, incluyendo los plugins y temas.

Crear el admin ajax personalizado

Crea un archivo llamado custom-admin-ajax.phpen el directorio wp-admin/ junto a admin-ajax.php

 


 

 

Configuración en el tema activo

En el archivo functions.phpdel tema activo, registraremos el script JavaScript, el evento AJAX y un shortcode para mostrar el botón HTML.

 

Registrar el script y el evento AJAX.

 admin_url( 'custom-admin-ajax.php' ),
    ] );
}
add_action( 'wp_enqueue_scripts', 'enqueueCustomAjaxScript' );

 

Manejar la acción en PHP

Define la acción personalizada para procesar la solicitud AJAX y devolver la hora local y UTC.

 $localTime,
        'utc_time'   => $utcTime,
    ] );
}
add_action( 'wp_custom_ajax_show_time', 'handleShowTime' );

 

Shortcode para mostrar el botón.

Mostrar Hora
'; } add_shortcode( 'show_time_button', 'renderAjaxButton' );

Crear el script JavaScript

Crea un archivo llamado custom-ajax.js en el directorio de tu tema con el siguiente contenido:

document.addEventListener('DOMContentLoaded', function() {
    const button = document.getElementById('show-time-btn');
    const output = document.getElementById('time-output');

    button.addEventListener('click', function() {
        fetch(customAjax.url + '?action=show_time')
            .then(function(response) {
                return response.json();
            })
            .then(function(data) {
                if (data.success) {
                    output.innerHTML =
                        '

Hora Local: ' + data.data.local_time + '

' + '

Hora UTC: ' + data.data.utc_time + '

'; } else { output.innerHTML = '

Error: ' + data.data.message + '

'; } }) .catch(function(error) { output.innerHTML = '

Error de conexión: ' + error.message + '

'; }); }); });

 

Resultado

  1. Agrega el shortcode [show_time_button] en cualquier entrada o página.
  2. Al cargar la página, verás un botón que dice «Mostrar Hora».
  3. Al hacer clic, se imprimirá la hora local y UTC usando nuestro admin AJAX personalizado.

Con esta configuración, puedes manejar solicitudes AJAX de manera más eficiente y ligera en WordPress. Este enfoque es útil para aplicaciones donde el rendimiento es clave y solo se necesitan las funcionalidades básicas del núcleo.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Back to Top
0
Would love your thoughts, please comment.x
()
x