J'essaie d'afficher une image à partir de ma méta-boîte personnalisée, mais je ne peux pas le faire:
fichier 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"] );
}
mon fichier de modèle où je veux afficher l'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;
ici 'commande' est affiché joliment mais pas image. print_r ($ custom) a quelque chose comme ceci:
Array (
[_edit_last] => Array ( [0] => 1 )
[order] => Array ( [0] => 13 )
[image] => Array ( [0] => coffee_star.jpg )
)
s'il vous plaît, aidez-moi à afficher l'image dans la page de modèle. Je suis très nouveau pour wordpress. Merci d'avance.
Si vous utilisez update_post_meta()
, utilisez également get_post_meta()
(voir Codex ) et non get_post_custom
$order = get_post_meta( $post->ID, 'order', true );
$image = get_post_meta( $post->ID, 'image', true );
Et puis, vérifiez dans votre source HTML à quoi ressemble votre balise image. Je parie que ça va ressembler à ça:
<img src="coffee_star.jpg" />
Qu'en est-il du chemin de l'image? Enregistrez le chemin complet de l'image, pas seulement le nom de fichier.