web-dev-qa-db-fra.com

Remplir des champs personnalisés dans un type de publication personnalisé?

Je souhaite configurer un système de base de "publication" pour mon site. Je ne souhaite pas utiliser de plug-in. Je souhaite donc ajouter le champ personnalisé "classification" à chaque nouvelle publication personnalisée et y ajouter le numéro 1. .

Est-ce possible? Ou est-ce que je m'y prend mal? Est-ce que beaucoup de recherches ont trouvé pas beaucoup, add_post_meta()? Je ne suis pas sûr où cela irait.

1
edzillion

vous pouvez le faire en accrochant une fonction simple à save_post hook

add_action('save_post','my_rating_field');
function my_rating_field($post_id){
    global $post;
        // verify if this is an auto save routine. 
        // If it is our form has not been submitted, so we dont want to do anything
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) 
            return;

        // verify this came from the our screen and with proper authorization,
        // because save_post can be triggered at other times
        if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) )
            return;
        // Check post type
        if ($post->post_type != "YOUR_POST_TYPE_NAME")
            return;

        // OK, we're authenticated: we need to find and save the data
    $rating = get_post_meta($post_id,'rating',true);
    //if field not exists create it and give it the value of one
    if (empty($rating) || !isset($rating)){
        update_post_meta($post_id,'rating',1);
    }
}
2
Bainternet