Soporte » WordPress Avanzado » Campos personalizados en título de entrada

  • Resuelto masini2002

    (@masini2002)



    Buenas, tengo este código para poder usar un shortcode con los campos personalizados que deseo en una entrada o página.

    add_shortcode(‘field’, ‘shortcode_field’);
    function shortcode_field($atts){
    extract(shortcode_atts(array(
    ‘post_id’ => NULL,
    ), $atts));
    if(!isset($atts[0])) return;
    $field = esc_attr($atts[0]);
    global $post;
    $post_id = (NULL === $post_id) ? $post->ID : $post_id;
    return get_post_meta($post_id, $field, true);
    }

    El problema está en que no funciona para los títulos de entrada y necesitaría añadir un campo personalizado al título (además del texto que le añada). Y ando un poco perdido de como hacerlo. Así que rogaría si alguien me puede ayudar y explicarmelo.

    Muchas gracias

Viendo 5 respuestas - 1 de 5 (de 5 total)
  • Puedes usar CMB2 para poder agregar los custom fields que desees. (puedes llamarle título adicional por ejemplo)

    puedes verlo aqui

    https://github.com/CMB2/CMB2

    Gracias, aunque preferiría poder mejorar mi función para hacerlo sin plugin de terceros.

    Moderador almendron

    (@almendron)

    Para añadir el contenido de un campo personalizado mediante un shortcode puedes utilizar el siguiente código:

    function shortcode_titulo() {
    global $post;
    $cptitulo = get_post_meta($post->ID, 'nombre_campo_personalizado', true);
    return '<p>' . $cptitulo . '</p>' ;
    }
    add_shortcode('titulo_personalizado', 'shortcode_titulo');

    Después, usa [titulo_personalizado] en cualquier parte de la entrada.

    Sustituye “nombre_campo_personalizado” por el nombre del campo que hayas creado.
    Sustituye “titulo_personalizado” por las palabras con las que llamaras a la función.

    Muchísimas gracias por la ayuda.

    Moderador almendron

    (@almendron)

    De nada. Un saludo.

Viendo 5 respuestas - 1 de 5 (de 5 total)
  • Debes estar registrado para responder a este tema.