web-dev-qa-db-fra.com

Taxonomie par défaut de WordPress (Tag) - Comment ajouter un champ personnalisé pour le former et l’enregistrer dans la base de données

Cela ajoute le champ au formulaire Ajouter un nouveau tag.

function tag_add_form_fields ( $taxonomy ){
    ?>
    <div class="form-field term-colorpicker-wrap">
        <label for="term-colorpicker">Category Color</label>
        <input type="color" name="_tag_color" value="#737373" class="colorpicker" id="term-colorpicker" />
        <p>This is the field description where you can tell the user how the color is used in the theme.</p>
    </div>
        <?php 
}
add_action('add_tag_form_fields','tag_add_form_fields');

Cela ajoute le champ au formulaire de balise d'édition

function tag_edit_form_fields ( $term ) {

    $color = get_term_meta( $term->term_id, '_tag_color', true );
    $color = ( ! empty( $color ) ) ? "#{$color}" : '#737373';

?>
    <tr class="form-field term-colorpicker-wrap">
        <th scope="row"><label for="term-colorpicker">Severity Color: <?php echo $color; ?></label></th>
        <td>
            <input type="color" name="_tag_color" value=" <?php echo $color; ?>" class="colorpicker" id="term-colorpicker" />
            <p class="description">This is the field description where you can tell the user how the color is used in the theme.</p>
        </td>
    </tr>

    <?php
 }
add_action('edit_tag_form_fields','tag_edit_form_fields');

Ceci est la partie inutilisable Sauvegarde et extraction de données de la base de données

function save_termmeta_tag( $term_id ) {

     // Save term color if possible
    if( isset( $_POST['_tag_color'] ) && ! empty( $_POST['_tag_color'] ) ) {
        update_term_meta( $term_id, '_tag_color', sanitize_hex_color_no_hash( $_POST['_tag_color'] ) );
    } else {
        delete_term_meta( $term_id, '_tag_color' );
    }

}

add_action( 'created_tag', 'save_termmeta_tag' );
add_action( 'edited_tag',  'save_termmeta_tag' ); 

Je suppose que les crochets d'action ne sont pas corrects.

Juste pour mentionner, le code est à l'origine d'une autre question postée. Je l'ai juste modifié pour répondre à mes besoins.

Ajout d'un champ Colorpicker à la catégorie

1

Pour mettre à jour et enregistrer, utilisez add_action( 'edit_term', 'save_termmeta_tag' );

2
Ben