0

「delete_post」アクションで関数をトリガーする際に問題が発生しました。データベースにもう1つのテーブルを追加する必要がある機能を構築しています(これにはwp_postmetaを使用できません)。このため、投稿に関連する追加データを含むカスタムテーブルを作成しました。管理者が管理パネルから投稿を削除するときに、カスタムテーブル内のその投稿のデータを削除したい(投稿がなくなったときに冗長データをそこに残したくない)

そして、私はこのようなものを実装しました:

add_action('admin_init', 'codex_init');
function codex_init() {
   if (current_user_can('delete_posts')) add_action('delete_post', 'delete_something');
}

function delete_something($postid) {
   //here im deleting everything from that table with that post id for that post type
}

そして、誰かがクリックして1つの投稿だけを削除する場合、これは完璧に機能します。しかし、一度にさらに投稿を削除したい場合(ワードプレスの管理メニューのボタンをチェックし、削除オプション-一括削除を選択)、これは機能しませんか?私はここで何か間違ったことをしていますか、それとも誰かが一度に複数の投稿を削除したいときに別のアクションがありますか?


編集:

以下のコメントに示されているように、このアクションは、一括および個別の削除アクションでも完全に機能します。私の問題は、グローバル$ post変数の使用に関連していました-個々の投稿のIDを取得するために-代わりに、関数に直接提供されるパラメーターを使用する必要があります。

4

1 に答える 1

3

あなたのアクションを持つwp-admin/edit.php関数をトリガーするコードを見ました。 これを試して。それとヒットしますか?wp_delete_post
dievar_dump

add_action('admin_init', 'codex_init');
function codex_init() {
   if (current_user_can('delete_posts')) add_action('delete_post', 'delete_something');
}

function delete_something($postid) {
     var_dump('trigger'.$postid);die();
     //here im deleting everything from that table with that post id for that post type
}
于 2012-05-07T12:44:28.940 に答える