WordPress es una plataforma potente y flexible que permite a los usuarios crear y administrar sitios web con facilidad. Una de las características más valiosas de WordPress es su capacidad de ampliarse mediante complementos. Los complementos son paquetes de código que agregan nuevas funciones o amplían las existentes dentro de un sitio web de WordPress. En este capítulo, nos centraremos en la creación de metaboxes personalizados desde cero como parte del desarrollo del complemento.

Introducción a Metaboxes

Los metaboxes son interfaces de usuario que aparecen en las páginas de edición de publicaciones, páginas o tipos de publicaciones personalizadas en el panel de administración de WordPress. Proporcionan un medio para que los usuarios ingresen y administren información adicional que no está cubierta por los campos estándar de WordPress, como el título y el editor de contenido. Los metaboxes personalizados se pueden utilizar para recopilar y mostrar todo tipo de datos, desde texto simple hasta selecciones complejas de datos.

Planificación personalizada de Metabox

Antes de comenzar a codificar nuestro metabox personalizado, es importante planificar su funcionalidad. Pregúntate:

  • ¿Cuál es el propósito del metabox?
  • ¿Qué tipo de datos debería recopilar o mostrar?
  • ¿En qué tipos de publicaciones o páginas debería aparecer?
  • ¿Qué campos son necesarios para recopilar estos datos?

Una vez que tengamos un plan claro, podemos comenzar la implementación.

Configuración del complemento

El primer paso es crear un nuevo complemento. Cree una nueva carpeta dentro del directorio /wp-content/plugins/ y un archivo PHP con el nombre de su complemento. Dentro de este archivo, comience con un encabezado de complemento estándar de WordPress:



Active el complemento a través del panel de administración de WordPress.

Creando el Metabox

Con el complemento activado, podemos comenzar a escribir la funcionalidad para agregar un metabox personalizado. Agreguemos una acción al gancho add_meta_boxes, que es donde definimos y registramos nuestros metaboxes.

add_action('add_meta_boxes', 'sp_add_custom_metabox');

función sp_add_custom_metabox() {
    agregar_meta_box(
        'sp_custom_metabox', // ID de Metabox
        'Información adicional', // Título de Metabox
        'sp_display_custom_metabox', // Función de devolución de llamada
        'publicación', // Tipo de publicación
        'normal', // Contexto
        'alta prioridad
    );
}

La función sp_display_custom_metabox es donde definiremos el HTML de nuestro metabox y los campos que contendrá. Creemos esta función ahora:

función sp_display_custom_metabox($publicación) {
    // Usa nonce para verificación
    wp_nonce_field(nombrebase(__FILE__), 'sp_custom_metabox_nonce');

    // Obtener los valores actuales, si los hay
    $meta_value = get_post_meta($post->ID, '_sp_meta_value', verdadero);

    // contenido de metabox
    echo '<label for="sp_meta_value">Valor adicional:</label>';
    echo '<input type="text" name="sp_meta_value" id="sp_meta_value" value="' . esc_attr($meta_value) . '">';
}

Guardar datos de Metabox

Después de crear el metabox y mostrar los campos necesarios, debemos ocuparnos de guardar estos datos cuando se guarda la publicación. Para hacer esto, conectemos una función al gancho save_post.

add_action('save_post', 'sp_save_metabox_data');

función sp_save_metabox_data($post_id) {
    // Comprobar el nonce
    if (!isset($_POST['sp_custom_metabox_nonce']) || !wp_verify_nonce($_POST['sp_custom_metabox_nonce'], nombre base(__FILE__))) {
        devolver $post_id;
    }

    // Comprobar si el usuario actual tiene permiso para editar la publicación
    if (!current_user_can('edit_post', $post_id)) {
        devolver $post_id;
    }

    //Comprueba que no es un guardado automático
    si (definido ('HACER_AUTOSAVE') && HACER_AUTOSAVE) {
        devolver $post_id;
    }

    // Desinfectar y guardar datos
    $new_meta_value = (isset($_POST['sp_meta_value']) ? sanitize_text_field($_POST['sp_meta_value']) : '');
    update_post_meta($post_id, '_sp_meta_value', $new_meta_value);
}

Esta función verifica la seguridad, el permiso del usuario y que no sea un guardado automático antes de desinfectar y guardar los datos enviados.

Conclusión

Desarrollar metaboxes personalizados es una forma efectiva de agregar funcionalidades específicas a su sitio web de WordPress. Si sigue los pasos descritos anteriormente, podrá crear metaboxes que puedan recopilar y mostrar datos de acuerdo con las necesidades de su sitio web. Recuerde siempre priorizar la seguridad y el saneamiento.Acción de datos para mantener su sitio web protegido. Con práctica y experimentación, puedes ampliar aún más tus habilidades de desarrollo de complementos y crear soluciones aún más sólidas para tus usuarios.

Esperamos que esta guía haya sido útil en su viaje de aprendizaje de WordPress. Continúe explorando y desarrollando sus habilidades para crear sitios web aún mejores y más funcionales.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es el propósito de la función `sp_save_metabox_data` al desarrollar metaboxes personalizados para WordPress?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Desarrollo de complementos desde cero: trabajar con el Personalizador

Siguiente página del libro electrónico gratuito:

107Desarrollo de complementos desde cero: trabajar con el Personalizador

6 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.