Bonsoir,

j'ai un petit problème pour récupérer la meta_value de la table wp_postmeta.

J'ai creer trois champs avec un name du type _cp_fields'nom_du_champ]
Je récupère les valeurs des champs dans un tableau _cp_fields'nom_du_champ'].

Les valeurs sont présente dans la table wp_postmeta avec le bon post_id, la bonne meta_ket qui correspond au bon champ et la bonne meta_value qui correspond bien ce que j'ia tapé dans le champ.

J'ai tester ca :
get_post_meta( $post_id, 'nom_du_champ' );
get_post_meta( $post_id, 'nom_du_champ', false );
get_post_meta( $post_id, 'nom_du_champ', true );
get_post_custom_values('nom_du_champ', $post_id);

Merci.

2 réponses


Salut est ce que tu aurais un peu de code car c'est assez bizarre, pour ma part les get_post_meta ont toujours bien fonctionné

Bon au final tout marche sauf une chose c'est l'ors de la publication d'un post apres que je clic sur Publier il y a une page blanche. Toutes les données sont sauvegarder dans la BDD pas de soucis. Est ce que je dois faire une redirection apre la publication ou il y a un problème dans mon code?

Et un autre probleme mais il est mineur, je n'arrive pas à afficher les images dans la liste des post du custom post

<?php
/*
Plugin Name: Citizen Press Team Management
Description: Un plugin qui permet de gérer les membres de Citizen Press
Version: 0.5
Author: Julien Miclo
Author URI: http://julienmiclo.fr
*/
/**
 * Fonction add_action
 */
add_action( 'init', '__cp_register' );
add_action( 'add_meta_boxes', '__cp_add_custom_boxes' );
add_action( 'save_post', '__cp_save_custom_boxes', 10, 2 );
add_action( 'manage_edit-cp-team_columns', '__cp_columnsfilter');
add_action( 'manage_posts_custom_column', '__cp_column');
add_action( 'admin_enqueue_scripts', '__cp_ajout_js');

/**
 * Création du custom post type
 */
function __cp_register(){
    $labels = array(
        'name' => 'Equipe Citizen Press',
        'singular_name' => 'Membre',
        'add_new' => 'Ajouter un membre',
        'add_new_item' => 'Ajouter un nouveau membre',
        'edit_item' => 'Editer un membre',
        'new_item' => 'Nouveau membre',
        'all_items' => 'Tous les membres',
        'view_item' => 'Voir le membre',
        'search_items' => 'Rechercher un membre',
        'not_found' => 'Aucun membre',
        'not_found_in_trash' => 'Aucun membre dans la corbeille', 
        'parent_item_colon' => '',
        'menu_name' => 'Equipe CP'
    );

    $args = array(
        'labels' => $labels,
        'public' => true,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => true,
        'has_archive' => true,
        'menu_position' => 99,
        'menu_icon' => 'img/icon.png' ,
        'supports' => array( 'title'),
        'rewrite' => array( 'slug' => 'cp-team', 'with_front' => false )
    ); 
    register_post_type('cp-team', $args);
}

/**
 * Modification des colones
 */
function __cp_columnsfilter($columns){
    $thumb = array('thumbnail' => 'Image');
    $columns = array_slice($columns, 0, 1) + $thumb + array_slice($columns, 1, null);
    return $columns;
}
function __cp_column($column){
    global $post;
    $thumbnail_columns = get_post_meta( $post->ID, 'cp_miniature', true );
    if($column == 'thumbnail'){
        echo $thumbnail_columns ;
    }
}

/*
* Creation de la fonction Metabox
*/
function __cp_add_custom_boxes(){
    add_meta_box( 'cp_team_meta_box', 'Informations sur le membre', '__cp_add_custom_box', 'cp-team', 'normal', 'high' );
}

/**
 * Ajout des différents script JS et CSS
 */
function __cp_ajout_js(){
    // les dépendances
    wp_enqueue_script( 'media-upload' );
    wp_enqueue_script( 'thickbox' );
    wp_enqueue_script( 'quicktags' );
    wp_enqueue_script( 'jquery-ui-resizable' );
    wp_enqueue_script( 'jquery-ui-draggable' );
    wp_enqueue_script( 'jquery-ui-button' );
    wp_enqueue_script( 'jquery-ui-position' );
    wp_enqueue_script( 'jquery-ui-dialog' );
    wp_enqueue_script( 'wpdialogs' );
    wp_enqueue_script( 'wplink' );
    wp_enqueue_script( 'wpdialogs-popup' );
    wp_enqueue_script( 'wp-fullscreen' );
    wp_enqueue_script( 'editor' );
    wp_enqueue_script( 'word-count' );
    wp_enqueue_style( 'thickbox' );
    //mon script
    wp_enqueue_script( 'meta-box-sup', plugins_url().'/team_management_cp/all/js/plugin.js', array('jquery', 'media-upload', 'thickbox'), '1.0', true);  
}

/*
* Formulaire du back office
*/
function __cp_add_custom_box($post){

    wp_nonce_field( 'team_management_cp', '_cp_nounce');
    /*$sql = "SELECT `post_id`, `meta_key`, `meta_value` FROM `wp_postmeta` WHERE `post_id` = '$post_id->ID';";
    $request = mysql_query($sql);

    $_cp_options = array();
    while($data = mysql_fetch_array($request)){ 
        $_cp_options$data'meta_key']] = $data'meta_value'];

    }*/

    ?>

    <div class="meta-box-item-content">
        <input type="hidden" name="_cp_hidden" value="WIN">
        <p>
            <label for="cp_prenom">Prénom</label></br>
            <input type="text" name="_cp_fields[cp_prenom]" id="cp_prenom" value="<?php echo get_post_meta( $post->ID, 'cp_prenom', true ); ?>" class="regular-text">
        </p>
        <p>
            <label for="cp_nom">Nom</label></br>
            <input type="text" name="_cp_fields[cp_nom]" id="cp_nom" value="<?php echo get_post_meta( $post->ID, 'cp_nom', true ); ?>" class="regular-text">
        </p>
        <p>
            <label for="cp_poste">Poste</label></br>
            <input type="text" name="_cp_fields[cp_poste]" id="cp_poste" value="<?php echo get_post_meta( $post->ID, 'cp_poste', true ); ?>" class="regular-text">
        </p>
        <p>
            <label for="cp_anecdote">Anecdote</label></br>
            <input type="text" name="_cp_fields[cp_anecdote]" id="cp_anecdote" value="<?php echo get_post_meta( $post->ID, 'cp_anecdote', true ); ?>" class="large-text">
        </p>
        <p>
            <table>
                <tr>
                    <td><input id="upload_miniature_zoom_button" class="button thickbox" type="button" value="Ajouter l'image zoomée" /></td>   
                    <td><input id="upload_miniature_button" class="button thickbox" type="button" value="Ajouter la grande image" /></td>
                </tr>
                <tr>
                    <td>
                        <input id="cp_miniature_zoom" type="hidden" name="_cp_fields[cp_miniature_zoom]" value="<?php echo get_post_meta( $post->ID, 'cp_miniature_zoom', true ); ?>" />
                        <img width="190" src="<?php echo get_post_meta( $post->ID, 'cp_miniature_zoom', true ); ?>" id="cp_miniature_zoom_img">
                    </td>   
                    <td>
                        <input id="cp_miniature" type="hidden" name="_cp_fields[cp_miniature]" value="<?php echo get_post_meta( $post->ID, 'cp_miniature', true ); ?>" />
                        <img width="190" src="<?php echo get_post_meta( $post->ID, 'cp_miniature', true ); ?>" id="cp_miniature_img">
                    </td>
                </tr>
            </table>
        </p>
        </div>
    <?php
}

/**
 * Sauvegarde des données du formulaire
 */
function __cp_save_custom_boxes($post_id, $post){
    if( !isset($_POST'_cp_hidden']) || !wp_verify_nonce( $_POST'_cp_nounce'], 'team_management_cp' )){
        return $post_id;
    }
    $post_type = get_post_type_object( $post->post_type );
    if(current_user_can( $type->cap->edit_post )){
        return $post_id;
    }
    foreach($_POST'_cp_fields'] as $name => $value){
        if(empty($value)){
            delete_post_meta( $post_id, $name );
        }
        else{
            update_post_meta( $post_id, $name, $value );
        }
    }
}

/**
 * Code HTML pour le front office
 */
function __cp_team_management(){
        //On importe le JS et le CSS
        wp_deregister_style( 'css' );
        wp_deregister_script( 'jquery' );
        //JS
        wp_enqueue_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', null, '1.9.1', true );
        wp_enqueue_script( 'isotope', plugins_url().'/team_management_cp/all/js/isotope.js', array(jquery), '1.5.25', true );
        wp_enqueue_script( 'main_js', plugins_url().'/team_management_cp/all/js/main.js', array(jquery), '1.0', true );
        //CSS
        wp_enqueue_style( 'main_css', plugins_url().'/team_management_cp/all/css/main.css', null, '1.0' );

        add_action( 'wp_footer', '__cp_team_script', 30);

        //On ecrit le code HTML
?>
        <section id="timeline">
            <div id="container">
                <?php
                $membres = new WP_query('post_type=cp-team');
                while ($membres->have_posts()) {
                    $membres->the_post();
                    global $post;
                ?>
                <article class="item bloc">
                       <div class="small-thumb">
                        <div class="overlay"></div>
                        <img src="<?php echo get_post_meta( $post->ID, 'cp_miniature_zoom', true ); ?>" alt="<?php echo get_post_meta( $post->ID, 'cp_prenom', true ); ?> <?php echo get_post_meta( $post->ID, 'cp_nom', true ); ?>-<?php echo get_post_meta( $post->ID, 'cp_poste', true ); ?>" class="small-thumb thumb">
                        </div>
                        <div class="info">
                            <div class="bulle"></div>
                             <img src="<?php echo get_post_meta( $post->ID, 'cp_miniature', true ); ?>" alt="<?php echo get_post_meta( $post->ID, 'cp_prenom', true ); ?> <?php echo get_post_meta( $post->ID, 'cp_nom', true ); ?>" class="large-thumb">
                            <p class="name"><?php echo get_post_meta( $post->ID, 'cp_prenom', true ); ?> <?php echo get_post_meta( $post->ID, 'cp_nom', true ); ?></p>
                            <p class="place"><?php echo get_post_meta( $post->ID, 'cp_poste', true ); ?></p>
                            <p class="phrase"><?php echo get_post_meta( $post->ID, 'cp_anecdote', true ); ?></p>
                        </div>
                </article>
                <?php
            };
                ?>
            </div>
        </section>
        <div class="clearfix">
<?php
}
?>