Displaying Meta Box Image

时间:2013-03-22 作者:turtledropbomb

我在我的自定义帖子类型单中显示自定义元框中的信息时遇到一些问题。我正在使用Reusable Custom Wordpress Meta Boxes 作者:塔米·哈特。

我可以使用以下方式显示文本字段:

<?php echo get_post_meta($post->ID, $prefix.\'hjemmeside\', true); ?>
但我无法显示图像,DEBUG告诉我这是一个“未定义的变量:post\\u meta\\u data in”。当前我正在使用此脚本:

<?php
    $custom_image = $post_meta_data[\'image\'][0];
    echo wp_get_attachment_image($custom_image, \'thumbnail\');
?>
这是错的吗?图像元字段的ID为“image”。

这是我的职能。php文件(仅元框部分):

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 );
此外,here\'s the link to the meta_box.php file, 其中包含与元框相关的所有代码:)

这是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) "[email protected]" 
  } 
  ["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." 
  } 
}
新var\\u转储:

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) "[email protected]" } 
        ["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:"";}}" } 

}
感谢您在这方面的帮助:)

2 个回复
SO网友:s_ha_dum

我不知道该插件是如何工作的,您发布的代码可能缺少上下文,但您需要定义$post_meta_data 下线前:

$custom_image = $post_meta_data[\'image\'][0];
该插件似乎正在使用post meta,因此您应该需要以下内容:

<?php echo get_post_meta($post->ID, $prefix.\'hjemmeside\', true); ?>
但是重写以将数据保存为变量,而不是echo 信息技术根据您发布的代码进行猜测,我相信您需要:

$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
未经测试,但有很好的工作机会。

SO网友:Brad Dalton

尝试以下操作:

get_post_meta(get_the_id(),\'hjemmeside\', true); 
假设hjemmeside是自定义字段键的名称。

结束

相关推荐

每次点击任何帖子查看不同的帖子ID后,Single.php都会多次触发

我现在遇到wordpress安装的有线问题。当我看到另一篇帖子的帖子查看计数器也增加了,包括我点击尝试检查结果的帖子时,我很惊讶。我还注意到,它增加了来自同一用户的另一篇帖子的帖子视图。更多信息:我正在从single调用一个函数。php,同时将post id传递给它,以便在post的底部显示post计数器。为了追踪这个问题,我使用了netbeans IDE并找到了那个单一的。php运行不止一次,它在第一次运行时传递不同的post id,然后在最后传递正确的post id。以获取单条上的帖子id。我使用的p