web-dev-qa-db-fra.com

Créer dynamiquement des termes en taxonomie lorsque le type de publication personnalisé est publié. Presque là!

J'essaie de créer automatiquement des termes dans une taxonomie donnée lorsqu'un type de publication personnalisé est publié. Le terme nouvellement créé doit être le nom du message publié.

Exemple: j'ai un type de message personnalisé "pays" et une taxonomie personnalisée "pays_taxo". Lorsque je publie un pays qui dit "Kenya", je souhaite que le terme "Kenya" soit automatiquement créé sous la taxonomie "country_taxo".

J'ai accompli cela en utilisant le "crochet d’action publish_ (custom_post_type)", mais je ne peux que le faire fonctionner de manière statique. Exemple:

// This snippet adds the term "Kenya" to "country_taxo" taxonomy whenever 
// a country custom post type is published.

add_action('publish_country', 'add_country_term');
function add_country_term() {
    wp_insert_term( 'Keyna', 'country_taxo');
}

Comme je l'ai mentionné ci-dessus, j'ai besoin de ceci pour ajouter dynamiquement le titre de l'article en tant que terme. J'ai essayé ça, mais ça ne marche pas:

add_action('publish_country', 'add_country_term');
function add_country_term($post_ID) {
    global $wpdb;
    $country_post_name = $post->post_name;
    wp_insert_term( $country_post_name, 'country_taxo');
}

Est-ce que quelqu'un sait comment j'y arriverais? Toute aide est grandement appréciée.

3
Duane

Vous êtes presque là - le problème est que vous essayez d'accéder à l'objet $postlorsque la fonction reçoit uniquement la publicationID.

add_action( 'publish_country', 'add_country_term' );
function add_country_term( $post_ID ) {
    $post = get_post( $post_ID ); // get post object
    wp_insert_term( $post->post_title, 'country_taxo' );
}
1
TheDeadMedic