web-dev-qa-db-ja.com

カスタムフィールドからの画像表示

カスタムメタボックスから画像を表示しようとしていますが、作成できません。

function.phpファイル:

add_action( 'admin_init', 'order_box' );
function order_box() {
add_meta_box( 'meta-box-id', 'My Custom Field', 'my_custom_field', 'post', 'normal', 'high' );
}
function my_custom_field(){ 
global $post;
$custom = get_post_custom($post->ID);
$order=$custom["order"][0];
$image=$custom["image"][0];
?>
<label for="custom_field">Put Order:</label>
<input type="text" name="order" value="<?php echo $order; ?>" />
<label for="custom_field">Upload Image:</label>
<input type="file" name="image" />
<?php  
} 

 add_action('save_post', 'save_order');
 function save_order(){
 global $post;
 update_post_meta($post->ID, "order", $_POST["order"]);
 update_post_meta($post->ID, "image", $_POST["image"] );
 }

画像を表示したいテンプレートファイル

<?php
while (have_posts()) : the_post(); ?>
<h1><a href="<?php the_permalink();?> ">  <?php the_title(); ?></a> </h1>
<?php the_content(); ?>
<?php 
$custom = get_post_custom($post->ID);
$image=$custom["image"][0];
$order=$custom["order"][0];
echo $order;
?>
//***  <img src="<?php echo $image; ?>" /> 
<img src="<?php echo get_post_meta($post->ID,'image',true); ?>" 
    width=200 height=200 />
 endwhile;

ここでの「注文」はきれいに表示されていますが、画像ではありません。 print_r($ custom)は次のようになりました。

Array ( 
    [_edit_last] => Array ( [0] => 1 ) 
    [order] => Array ( [0] => 13 ) 
    [image] => Array ( [0] => coffee_star.jpg ) 
)

誰かが私のテンプレートページに画像を表示するのを手伝ってください。私はワードプレスにはとても新しいです。前もって感謝します。

2
strange man

update_post_meta()を使用する場合は、get_post_customではなくget_post_meta()Codex を参照)も使用してください。

$order = get_post_meta( $post->ID, 'order', true );
$image = get_post_meta( $post->ID, 'image', true );

そして、あなたの画像タグがどのように見えるかあなたのHTMLソースをチェックインするよりも。私はそれがこのように見えるでしょう:

<img src="coffee_star.jpg" />

画像へのパスはどうですか?ファイル名だけでなく、画像の完全なパスを保存してください。

2
Ralf912