カスタムメタボックスから画像を表示しようとしていますが、作成できません。
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 )
)
誰かが私のテンプレートページに画像を表示するのを手伝ってください。私はワードプレスにはとても新しいです。前もって感謝します。
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" />
画像へのパスはどうですか?ファイル名だけでなく、画像の完全なパスを保存してください。