web-dev-qa-db-fra.com

Mise à jour/enregistrement des éléments générés par wp_terms_checklist sur le frontend

J'affiche une liste de taxonomies personnalisées à partir d'un type de publication personnalisé sur une page frontale, qui montre tous les éléments que l'utilisateur a précédemment sélectionnés comme étant cochés.

Je l’affiche correctement, mais je ne parviens pas à déterminer comment enregistrer les sélections nouvelles ou modifiées.

C'est le code que j'utilise pour afficher les termes:

$args = array(
    'descendants_and_self'  => 0,
    'selected_cats'         => false,
    'popular_cats'          => false,
    'walker'                => null,
    'taxonomy'              => 'genres',
    'checked_ontop'         => false
); 

wp_terms_checklist( $my_postid, $args ); 

Quelles sorties comme celle-ci sur la page:

<li id='genres-28'><label class="selectit"><input value="28" type="checkbox" name="tax_input[genres][]" id="in-genres-28" checked='checked' /> 2 Step</label></li>

<li id='genres-14'><label class="selectit"><input value="14" type="checkbox" name="tax_input[genres][]" id="in-genres-14" checked='checked' /> Afro House</label></li>

<li id='genres-7'><label class="selectit"><input value="7" type="checkbox" name="tax_input[genres][]" id="in-genres-7" checked='checked' /> Bassline</label></li>

etc...

Je configure les données de publication comme ceci:

$post_to_edit = array(
    'ID'           => $my_postid,
    'post_content' => $_POST['editor'],
    'tax_input'    =>  array( 'genres' => array($_POST['tax_input[genres]']) )
);

$pid = wp_update_post($post_to_edit);

Ensuite, j'essaie de mettre à jour les termes comme ceci:

wp_set_post_terms($pid,(array)$_POST['tax_input[genres]'],'genres', true);

Et j'ai aussi essayé:

wp_set_object_terms($pid,(array)($_POST['tax_input[genres]']),'genres');

Mais ni ne travaillent?

Je suppose que je ne sélectionne pas le bon attribut de nom, mais j'ai essayé tout ce que je pouvais penser au cours des dernières 24 heures et je ne pouvais tout simplement pas obtenir les termes à enregistrer dans la base de données.

Est-ce que quelqu'un sait comment je peux sauvegarder/mettre à jour les valeurs générées par wp_terms_checklist?

1
Grant

$_POST['tax_input[genres]'] devrait être $_POST['tax_input']['genres']

0
webtoure