私は2つのカスタム投稿タイプを持っています:CDとトラック。それらのそれぞれはそれらに関連するいくつかのメタデータを持っています。
私がやろうとしているのは、CDポストが編集されているときにトラックポストをCDポストに追加することです。 CD編集ページに "Add Track"リンクがあります。それをクリックするとき、私はトラックのために指定される必要があるすべてのメタデータと一緒にトラック(カスタムポストタイプ)情報を求めるリンクの下に「新しいトラックフォーム」が現れるようにしたいです - 左側の[WPメニューから[トラックを追加]リンクをクリックしました。それが理にかなっていることを願っています。CD
私のCDとトラックのカスタム投稿タイプは次のように登録されています。 http://wordpress.Pastebin.com/Y6aagTVs
CDの編集ページに、私は次のリンクがあります<a class="addTrack" href="">Add Track</a>
AJAXと、 "New Track form"の追加を処理する機能がありません。これが私がこれまでにAJAX関数で持っていたものです:
// Add Tracks
$("a.addTrack").click(function () {
opts = {
url: ajaxurl, // ajaxurl is defined by WordPress and points to /wp-admin/admin-ajax.php
type: 'POST',
async: true,
cache: false,
dataType: 'json',
data:{
action: 'track_add', // Tell WordPress how to handle this ajax request
},
success: function(response) {
return false;
},
error: function(xhr,textStatus,e) { // This can be expanded to provide more information
alert("There was an error adding a track.");
return false;
}
};
$.ajax(opts);
});
そして、 "New Track Form"の挿入を処理する機能は、
// Add Tracks
add_action('wp_ajax_track_add', 'my_ajax_admin_add_track');
function my_ajax_admin_add_track() {
}
私はAJAXとmy_ajax_admin_add_track()関数についてどのように進めるべきかわかりません。本当に助けやヒントをいただければ幸いです。
ありがとう、ダーシャ
My_ajax_admin_add_track()関数の場合は、$ _POST配列からフォームフィールドデータを取得し、必要なデータを配列に入力してwp_insert_post()を呼び出し、次に投稿データを渡してwp_insert_post()を呼び出します。成功すれば、新しい投稿ID番号を返すはずです。