Quando di aggiungono campi aggiuntivi a pagine e post, oppure ai propri Custom Post Type (CTP), bisogna registrare una action per memorizzare questi nuovi dati. L’implementazione di questa procedura è sostanzialmente sempre lo stessa, cambiano solo i campi e le modalità di salvataggio; i dati extra possono risiedere nei ‘custom field’, ovvero la tabella post meta, oppure su una o più tabelle personali. Uno scheletro utile è il seguente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* Registrazione dell'hook */ add_action( 'save_post','did_post_update', 10, 2 ); function did_post_update($ID, $post) { // Variabili locali // Esclude valori negati (e possibili caratteri) $ID = absint($ID); // Tipo di post (CPT) $post_type = get_post_type(); $post_type_object = get_post_type_object($post_type); $capability = ''; // Esce se autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE === true) { return; } // Esce se il post non è del nostro tipo if (!in_array($post_type, array('post_type_id'))) { return; } // Ulteriore controllo tramite il sistema nonce di WordPress if (isset($_POST['nonce_id']) && !wp_verify_nonce($_POST['nonce_id'], 'uniqid') ) { return; } // Troviamo le capability corrette in relazione al nostro post type if (isset($post_type_object->cap->edit_posts)) { $capability = $post_type_object->cap->edit_posts; } // Bye bye se non abbiamo i permessi if (!current_user_can($capability)) { return; } /** * Se arriviamo qui possiamo salvare i nostri dati */ |








6
Non ci sono commenti per questo Post
Lascia un commento