web-dev-qa-db-ja.com

Wp_insert_post()を使用して分類用語を挿入できない

eyeglassesというカスタム投稿タイプとmodelsというカスタム分類法があります。私は分類学のためにM156M120という2つの用語も作成しました。今私はwp_insert_postを通してテストのために二つの投稿をアップロードしようとしています。

これは、eyeglasses$titlepost_titleを追加することですが、投稿の用語を追加または更新することはしません。

function we_load_posts($title, $term)
{
    wp_insert_post(array(
        "post_type" => "eyeglasses",
        "post_title" => $title,
        "tax_input" => array(
                             "models" => array($term)
                           ),
        "post_status" => "publish"
    ));
}
we_load_posts("Montana", "M156");
we_load_posts("Havana", "M120");

私が足りないものや間違っているものを教えてください。

3
Behseini

頭に浮かぶ点がいくつかあります。

  1. "post_type" => "'eyeglasses"(余分な一重引用符)にタイプミスがあります。 "post_type" => "eyeglasses"です。

  2. array( $term )の代わりに$termを入れてみてください。

    "tax_input" => array(
        "models" => $term
    )
    
  3. また、modelsmodelのどちらですか。例えば.

    "tax_input" => array(
        "model" => $term
    )
    
  4. tax_inputにはassign_terms機能が必要です。ですから、あなたがこのCODEを実行しているユーザーがその機能を持っていなければ、それは機能しません。

    その場合、正しい方法は次のとおりです。

    $post_id = wp_insert_post(array(
        "post_type" => "eyeglasses",
        "post_title" => $title,
        "post_status" => "publish"
    ));
    
    wp_set_object_terms( $post_id, $term, 'model' );
    
4
Nazaria