web-dev-qa-db-fra.com

Affichage des images depuis un champ personnalisé

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.

2
strange man

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.

2
Ralf912