web-dev-qa-db-fra.com

Comment enregistrer la taxonomie personnalisée à partir de la soumission initiale

J'ai lu de nombreux articles sur ce sujet et n'arrive pas à comprendre ce que je dois faire.

J'ai un formulaire où les utilisateurs peuvent soumettre un message à un type de message personnalisé à partir de la fin. Je souhaite intégrer un menu déroulant dans lequel les utilisateurs peuvent sélectionner une taxonomie personnalisée que j'ai créée. Je dois enregistrer la valeur sélectionnée lors de l'envoi du formulaire.

La forme:

 <fieldset class="jobcategorydropdown">
        <label for="jobcatdd"> Job Category </label>
        <?php wp_dropdown_categories( 'taxonomy=jobcats&hide_empty=0&name=ddjobcats' ); ?> 
</fieldset>

Enregistrer la taxonomie:

register_taxonomy('jobcats', 'job_listing', array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'topic' ),

));

Faire un nouveau post:

function make_job_post() {

$type = 'job_listing';

$jobcatvalue = $_POST['jobcats'];


$post_information = array(
'post_title' => wp_strip_all_tags( $_POST['postTitle'] ),
'post_content' => $_POST['postContent'],
'post_type' => $type,
'post_status' => 'publish',
'tax_input' => array($jobcatvalue)
);

$pid = wp_insert_post($post_information);


wp_set_object_terms($pid, $jobcatvalue,'jobcats');


}

Est-ce que je manque quelque chose? Toute aide serait grandement appréciée!

1
Maeve Power

Si vous enregistrez $ jobcatsvalue, assurez-vous qu’il s’agit d’un tableau d’entiers lors de la sauvegarde.

    // Format the taxonomies
    if(is_array($_POST['jobcats'])){
        foreach($_POST['jobcats'] as $j){
            $jobcatvalue[] = intval($j);
        }
    } else {
        $jobcatvalue = array(intval($_POST['jobcats']));
    }
1
Hendrik Luehrsen