Visualización de la imagen de Meta Box

3

Tengo algunos problemas para mostrar información de mi meta caja personalizada en mi publicación personalizada tipo single. Estoy usando Cajas meta de Wordpress personalizables reutilizables por Tammy Hart.

Puedo mostrar los campos de texto usando esto:

<?php echo get_post_meta($post->ID, $prefix.'hjemmeside', true); ?>

Pero no puedo ver la imagen, en su lugar, DEBUG me dice que es una "Variable no definida: post_meta_data in". Actualmente estoy usando este script:

<?php
    $custom_image = $post_meta_data['image'][0];
    echo wp_get_attachment_image($custom_image, 'thumbnail');
?>

¿Esto está mal? El ID del campo de meta de la imagen es "imagen".

Este es mi archivo functions.php (solo la parte de meta box):

include (TEMPLATEPATH . '/metaboxes/meta_box.php');

$prefix = 'sample_';

$fields = array(
array( // Hjemmeside
    'label' => 'Hjemmeside', // <label>
    'desc'  => 'Skriv inn hjemmesiden til butikken her.', // description
    'id'    => $prefix.'hjemmeside', // field id and name
    'type'  => 'text' // type of field
),
array( // Facebook
    'label' => 'Facebook', // <label>
    'desc'  => 'Skriv inn facebookadressen til butikken her.', // description
    'id'    => $prefix.'facebook', // field id and name
    'type'  => 'text' // type of field
),
array( // Telefon
    'label' => 'Telefon', // <label>
    'desc'  => 'Skriv inn telefonnummeret til butikken her.', // description
    'id'    => $prefix.'telefon', // field id and name
    'type'  => 'text' // type of field
),
array( // Mailadresse
    'label' => 'Mailadresse', // <label>
    'desc'  => 'Skriv inn mailadressen til butikken her.', // description
    'id'    => $prefix.'mailadresse', // field id and name
    'type'  => 'text' // type of field
),
array( // Senterbeliggenhet
    'label' => 'Senterbeliggenhet', // <label>
    'desc'  => 'Skriv inn hvor butikken er plassert i senteret.', // description
    'id'    => $prefix.'senterbeliggenhet', // field id and name
    'type'  => 'textarea' // type of field
),
array( // Logo
    'label' => 'Logo', // <label>
    'desc'  => 'Last opp logoen til butikken her.', // description
    'id'    => $prefix.'image', // field id and name
    'type'  => 'image' // type of field
),
);

/**
 * Instantiate the class with all variables to create a meta box
 * var $id string meta box id
 * var $title string title
 * var $fields array fields
 * var $page string|array post type to add meta box to
 * var $js bool including javascript or not
 */
$sample_box = new custom_add_meta_box( 'sample_box', 'Butikkinformasjon', $fields, 'butikker', true );

También, aquí está el enlace al archivo meta_box.php , que contiene todos los códigos relevantes para las meta cajas :)

Aquí está la salida de var_dump(get_post_custom($post->ID));

array(11) { 
  ["_edit_last"]=> array(1) { 
    [0]=> string(1) "1" 
  } 
  ["_edit_lock"]=> array(1) { 
    [0]=> string(12) "1363962761:1" 
  } 
  ["_thumbnail_id"]=> array(1) { 
    [0]=> string(2) "58" 
  } 
  ["sample_text"]=> array(1) { 
    [0]=> string(11) "99 88 99 88" 
  } 
  ["sample_image"]=> array(1) { 
    [0]=> string(1) "0" 
  } 
  ["sample_hjemmeside"]=> array(1) { 
    [0]=> string(21) "www.ethic-clinique.no" 
  } 
  ["sample_facebook"]=> array(1) { 
    [0]=> string(31) "www.facebook.com/ethic-clinique" 
  } 
  ["sample_telefon"]=> array(1) { 
    [0]=> string(11) "99 88 99 88" 
  } 
  ["sample_mailadresse"]=> array(1) { 
    [0]=> string(22) "post@ethic-clinique.no" 
  } 
  ["sample_senterbeliggenhet"]=> array(1) { 
    [0]=> string(42) "Tredje butikken til høyre i andre etasje." 
  } 
  ["sample_logo"]=> array(1) { 
    [0]=> string(42) "Tredje butikken til høyre i andre etasje." 
  } 
}

Nuevo var_dump:

array(12) { 

        ["_edit_last"]=> array(1) { [0]=> string(1) "1" } 
        ["_edit_lock"]=> array(1) { [0]=> string(12) "1363964314:1" } 
        ["_thumbnail_id"]=> array(1) { [0]=> string(2) "58" } 
        ["sample_text"]=> array(1) { [0]=> string(11) "99 88 99 88" } 
        ["sample_image"]=> array(1) { [0]=> string(2) "58" } 
        ["sample_hjemmeside"]=> array(1) { [0]=> string(21) "www.ethic-clinique.no" } 
        ["sample_facebook"]=> array(1) { [0]=> string(31) "www.facebook.com/ethic-clinique" } 
        ["sample_telefon"]=> array(1) { [0]=> string(11) "99 88 99 88" } 
        ["sample_mailadresse"]=> array(1) { [0]=> string(22) "post@ethic-clinique.no" } 
        ["sample_senterbeliggenhet"]=> array(1) { [0]=> string(42) "Tredje butikken til høyre i andre etasje." } 
        ["sample_logo"]=> array(1) { [0]=> string(42) "Tredje butikken til høyre i andre etasje." } 
        ["sample_repeatable"]=> array(1) { [0]=> string(74) "a:1:{i:0;a:3:{s:5:"image";s:2:"89";s:5:"title";s:0:"";s:4:"desc";s:0:"";}}" } 

}

Aprecio cualquier ayuda en esto :)

    
pregunta turtledropbomb 22.03.2013 - 13:15

2 respuestas

0

No sé exactamente cómo funciona ese complemento, y ha publicado un código que probablemente carece de contexto, pero necesita definir $post_meta_data antes de ejecutar la línea:

$custom_image = $post_meta_data['image'][0];

Parece que el complemento está usando meta de publicación, por lo que deberías necesitar algo como esto:

<?php echo get_post_meta($post->ID, $prefix.'hjemmeside', true); ?>

Pero reescrito para guardar los datos como una variable en lugar de echo it. Adivinando sobre la base del código que publicaste, creo que necesitas:

$post_meta_data = get_post_meta($post->ID, $prefix.'image', true);
if (!empty($post_meta_data[0])) {
  $custom_image =  wp_get_attachment_image($post_meta_data[0], 'thumbnail');
}
echo $custom_image; // if desired

No probado, pero tiene una buena probabilidad de funcionar.

    
respondido por el s_ha_dum 22.03.2013 - 14:50
0

Prueba esto:

get_post_meta(get_the_id(),'hjemmeside', true); 

Supone que hjemmeside es el nombre de su clave de campo personalizada.

    
respondido por el Brad Dalton 06.06.2015 - 10:01

Lea otras preguntas en las etiquetas