サポート » 使い方全般 » tax_inputでタクソノミーを登録する方法について

  • はじめまして。
    現在フロントページからユーザーが投稿できるサイトを制作しています。
    form内で選択したカスタム投稿タイプのタクソノミーを取得してたいのですが、うまく動きません。
    tax_inputのところの書き方が恐らくおかしいのだと思います。

    <select id="" name="taxonomy">
                   <option value="" selected="true">選択してください</option>
                   <?php
                        $terms = get_terms('taxonomy' , 'get=all');
    
                        foreach($terms as $term){
                             echo '<option value="' . $term->slug . '">' .
                             esc_html($term -> name) .
                             '</option>';
                        }
                   ?>
              </select>
    $term = $_POST['taxonomy'];
        	$term_id = $term->term_id; 
            $id = wp_insert_post(array(
                //'post_title' => (string)$_POST['title'],
                'post_title' => (string)$_POST['title'],
                'post_content' => (string)$_POST['content'],
                'post_status' => 'publish',
                'post_author' => get_current_user_id(),
                'post_type' => 'multi',
                'tax_input' => array( 'taxonomy' => array($term_id)),
            ), true);

    こちらの記事を参考にさせていただきました。
    https://takahashifumiki.com/web/programing/2173/

    よろしくお願いいたします。

    ヘルプの必要なページ: [リンクを見るにはログイン]

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • wp_set_object_terms()を使えばうまくいくと思いますが、いかがでしょうか?

    wp_insert_post() で $id が返ってきているので、そのあとに、

    wp_set_object_terms($id, ‘カスタム分類として登録している名前’, ‘area’);

    で、自分はうまくいきました。

    詳しくは、こちらの記事が参考になると思います。
    http://co-co-wa.com/wp_insert_post-custom-taxonomy-setting/

    トピック投稿者 survive

    (@survive)

    yike様

    教えていただいたとおりにやるとうまく動きました!
    長い間困っていたのでとても助かりました。ありがとうございます。

    私は下記のようにしてうまくいきました。

    if(empty($create_thread_error)){
        $term = $_POST['カスタムタクソノミー名'];
        $term_id = $term->term_id; 
        $id = wp_insert_post(array(
            'post_title' => (string)$_POST['title'],
            'post_content' => (string)$_POST['content'],
            'post_status' => 'publish',
            'post_author' => get_current_user_id(),
            'post_type' => 'カスタム投稿タイプ名',
            'tax_input' => array( 'カスタムタクソノミー名' => array($term_id)),
            ), true);
    if($id) {
        wp_set_object_terms($id, $term, 'カスタムタクソノミー名');
        }

    うまく行ったようでよかったです!

    ちょうど自分もこの実装をしたところだったので、
    タイミングが良かったですw

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「tax_inputでタクソノミーを登録する方法について」には新たに返信することはできません。