Guardar datos adicionales en posts y páginas con register_post_meta()

Para guardar datos adicionales en posts y páginas de WordPress, deberías dominar la función «register_post_meta()»

⚡ Se utiliza para registrar metadatos personalizados para un tipo de publicación específica (Posts, Páginas y Custom Post Type)

⚡ Se usa para almacenar información en en la base de datos de WordPress.

⚡ Amplia mucho las posibilidades de personalización de WordPress.

⚡ 'show_in_rest' determina si el metadato se tiene que mostrar en la API REST, lo cual es útil para bloques de Gutenberg y aplicaciones headless.

⚡ Asegúrate que solo los usuarios autorizados puedan editar metadatos críticos, usando  'auth_callback'.

⚡ Soporta varios tipos de datos para los metadatos, incluyendo 'string''boolean''integer''number''array', y 'object'.

⚡ 'single' = true, especifica si el metadato debe tener un solo valor o múltiples valores.

⚡ 'sanitize_callback' define una función que se usa para limpiar los datos antes de guardarlos.

⚡ Puedes definir un valor por defecto que se utilizará si no se ha establecido ningún valor. usando el argumento 'default'.

⚡ Utilízala para registrar metadatos que se utilicen para integraciones con APIs externas.

//Registrar un campo de valoración tipo numero en un CPT Libros
function registrar_mis_metadatos_libros() {

    register_post_meta('libros', 'rating', array(
        'type' => 'number',
        'single' => true,
        'show_in_rest' => true,
        'default' => 0,
        'sanitize_callback' => 'absint',
        'auth_callback' => function() {
            return current_user_can('edit_posts');
        },
    ));

add_action('init', 'registrar_mis_metadatos_libros');
//Optimizando consultas por metadastos con wp_query
$args = array(
    'meta_key' => 'isbn',
    'meta_value' => '978-3-16-148410-0',
);
$query = new WP_Query($args);
//Obtener y mostrar un metadato
$isbn = get_post_meta(get_the_ID(), 'isbn', true);
echo 'ISBN: ' . esc_html($isbn);
//Condicional para registrar un metadato
if (is_admin()) {
    register_post_meta('libros', 'isbn', $args);
}
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.