2017-02-10 5 views
0

私はこのtutorialのメソッドを使用しています。フロントエンドにカスタム投稿(sugestie)を作成するのに適しています。フロントエンドREST APIでカスタム投稿タイプを挿入し、カスタム分類を割り当てます

問題は、フォームが送信されたときにそれらの投稿にカスタムタクソノミを割り当てる方法が見つからないということです。バックエンドではうまく動作します。

これはこれはこれは

jQuery(document).ready(function ($) { 
    $('#post-submission-form').on('submit', function(e) { 
     e.preventDefault(); 
     var title = $('#post-submission-title').val(); 
     var content = $('#post-submission-content').val(); 
     var cat = parseInt($('#post-submission-cat').val()); 

     var data = { 
      title: title, 
      content: content, 
      post_type: 'sugestie', 
      status: 'pending', 
      //cat_sugestie: cat - this doesn't work 
     }; 

     $.ajax({ 
      method: "POST", 
      url: POST_SUBMITTER.root + 'wp/v2/sugestie', 
      data: data, 
      beforeSend: function(xhr) { 
       xhr.setRequestHeader('X-WP-Nonce', POST_SUBMITTER.nonce); 
      }, 
      success : function(response) { 
       alert(POST_SUBMITTER.success); 
      }, 
      fail : function(response) { 
       alert(POST_SUBMITTER.failure); 
      } 
     }); 
    }); 
}); 

だから、それはポストを提出するためのJSコードである私は形で分類法を取得する方法

<div> 
    <label for="post-submission-cat"> 
     <?php _e('Chose a category', 'your-text-domain'); ?> 
    </label> 

    <select name="post-submission-cat" id="post-submission-cat"> 

    <?php if ($cats = get_terms(array('taxonomy' => 'cat_sugestie', 'hide_empty' => false))) { 
     foreach ($cats as $cat) { ?> 
      <option value="<?php echo $cat->term_id; ?>"><?php echo $cat->name; ?></option> 
     <?php 
     } 
    } ?> 

    </select> 
</div> 

で分類

register_taxonomy( 
    'cat_sugestie', //The name of the taxonomy. 
    'sugestie', //post type name 
    array( 
     'labels' => array(
      'name'    => _x('Categorii', 'taxonomy general name', 'books'), 
      'singular_name'  => _x('Categorie', 'taxonomy singular name', 'books'), 
      'search_items'  => __('Cauta Categorii', 'books'), 
      'all_items'   => __('Toate Categoriile', 'books'), 
      'parent_item'  => __('Categorie parinte', 'books'), 
      'parent_item_colon' => __('Categorie parinte:', 'books'), 
      'edit_item'   => __('Editeaza Categorie', 'books'), 
      'update_item'  => __('Update Categorie', 'books'), 
      'add_new_item'  => __('Adauga Categorie', 'books'), 
      'new_item_name'  => __('Numele noii Categorii', 'books'), 
      'menu_name'   => __('Categorii', 'books'), 
     ), //Display name 
     'hierarchical' => true, 
     'query_var' => true, 
     'show_ui' => true, 
     'show_in_rest' => true, 
     'rest_base' => 'cat_sugestie', 
     'show_admin_column' => true, 
     'rewrite' => array(
      'slug' => 'cat_sugestie', // base slug that will display before each term 
      'with_front' => false // display the category base before 
     ), 
     'capabilities' => array(
      'assign_terms' => 'read', 
     ) 
    ) 
); 

ですこれを達成することは可能でしょうか? ありがとうございました!

+0

答えを得ましたか? – input

答えて

0

その時点でajaxコードを使用してバックエンドに投稿を追加している間は、データベースに投稿を追加した後にファイルにこのコードを追加する必要があります。 $pppidがあなたのpost_id$post_channelある

wp_set_post_terms($pppid, $post_channel, 'category'); 

はあなたのcategory idcategoryがあなたのcustom taxonomy nameです。

それはあなたのために働くでしょう。

+0

事は、私はこのメソッドで投稿IDを取得できないということです。だから、基本的に私はIDを見つけることができる場合、ポストが挿入された直後にwp_set_post_terms()に別のajax呼び出しを行う必要があります。 – Mitrescu

+0

これを解決できません。皆さんは他のアイデアを持っていますか? – Mitrescu

関連する問題