web-dev-qa-db-ja.com

カスタム投稿タイプが公開されたときに分類学で動的に用語を作成する。もうすぐそれに!

特定のカスタム投稿タイプが公開されたときに、特定の分類法で自動的に用語を作成しようとしています。新しく作成された用語は、公開された投稿の名前である必要があります。

例:カスタムの投稿タイプ "country"とカスタムの分類法 "country_taxo"があります。 "Kenya"と言う国を発行するときに、 "country_taxo"分類法の下に "Kenya"という用語を自動的に作成するようにします。

これは「publish_(custom_post_type)アクションフック」を使って達成しましたが、静的に動作させることしかできません。例:

// 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');
}

前述したように、記事のタイトルを動的に用語として追加するにはこれが必要です。私はこれを試しましたが、うまくいきません。

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');
}

誰もが私がこれをやることになるだろう方法を知っていますか?任意の助けは大歓迎です。

3
Duane

あなたはほとんどいます - 問題は$postオブジェクトにアクセスしようとしていることです関数がポストのみを受け取るときID

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