Exibindo a imagem da caixa Meta

3

Tenho alguns problemas ao exibir informações da minha caixa meta personalizada no meu tipo de postagem personalizada. Eu estou usando Meta Caixas de Wordpress Personalizadas Reutilizáveis por Tammy Hart.

Eu sou capaz de exibir os campos de texto usando isso:

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

Mas não consigo exibir a imagem, em vez DEBUG está me dizendo que é uma "variável indefinida: post_meta_data em". Atualmente estou usando este script:

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

Isso está errado? O ID do campo meta da imagem é "imagem".

Este é o meu arquivo functions.php (somente a parte da caixa meta):

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 );

Além disso, aqui está o link para o arquivo meta_box.php , que contém todos os códigos relevantes para as caixas meta:)

Aqui está a saída 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." 
  } 
}

Novo 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:"";}}" } 

}

Aprecie qualquer ajuda sobre isso:)

    
por turtledropbomb 22.03.2013 / 13:15

2 respostas

0

Não sei exatamente como esse plug-in funciona, e você postou um código que provavelmente está com falta de contexto, mas é necessário definir $post_meta_data antes de executar a linha:

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

Parece que o plugin está usando o post meta, então você deve precisar de algo assim:

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

Mas reescrito para salvar os dados como uma variável em vez de echo . Adivinhando com base no código que você postou, acredito que você precisa:

$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

Não testado, mas tem uma boa chance de trabalhar.

    
por s_ha_dum 22.03.2013 / 14:50
0

Tente isto:

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

Presume que hjemmeside é o nome da sua chave de campo personalizada.

    
por Brad Dalton 06.06.2015 / 10:01