web-dev-qa-db-ja.com

新しい投稿を作成中に新しい用語を挿入

私は現在、新しい投稿を動的に挿入するためのスニペットに取り組んでいます(カスタム投稿タイプです)。この新しい投稿の作成中に、カスタム投稿タイプに関連付けられたカスタム分類に用語を挿入する必要があります。

有名な "invalid taxonomy"というエラーメッセージが出ていますが、解決方法がわかりません。

これが私が使っているコードです:

  • カスタム投稿タイプはpropertyです。
  • カスタム分類法は次のとおりです。

コード:

// Insert property into DB
$property = array(
    'post_title'   => $title,
    'post_content' => $description,
    'post_status'  => 'draft',
    'post_author'  => 1,
    'post_type'    => 'property'
);

// Insert the post into the database
$property_id = wp_insert_post( $property );         

// Taxo Property Type
if( $property_type ) {

    // check if term exists
    $property_type_term = term_exists( $property_type, 'type' );

    if( $property_type_term !== 0 && $term !== null ) {
        // Term exists, get the term id
        $property_type_term_id = $property_type_term;
    } else {
        // Create new term
        $property_type_term_id = wp_insert_term(
                                    $property_type,     // the term 
                                    'type'          // the taxonomy
                                );
    }

    // Assign term id to post
    wp_set_post_terms( $property_id, array($property_type_term_id), 'type' );

}

このコードでは、投稿は正しく作成されていますが、その用語は正しく作成されていません。

任意の助けは大歓迎です!

4
Remi

最初にカスタム分類タイプに分類を設定する必要があります。カスタム分類に設定しなかった投稿のタイトル投稿コンテンツの投稿コメントにのみ設定しました。

$post = array('tax_input'      => [ array( <taxonomy> => <array | string> ) ] // For custom taxonomies. Default empty.
  'page_template'  => [ <string> ] // Requires name of template file, eg template.php. Default empty.
);

このクエリは、カスタム投稿の作成中にカスタム分類を設定します このリンクをチェックします

1
Sri