私はedit.phpのコードを覗き見して、このコードでリンクを生成しています。
wp_nonce_url("/wp-admin/edit.php?doaction=trash&post_type=post&ids=postIds", "bulk-posts")
URLの文字列 "postIds"は、javascriptを介してカンマ区切りの投稿IDに置き換えられます。これまでに行ってきたことは、バックエンドの編集画面にリダイレクトすることだけです。一度に複数の投稿をゴミ箱に捨てるには、このリンクを生成する必要がありますか。
それは "doaction"の代わりにaction
であるべきです、それでそれはちょうど上手くいきます。
私が知っている限り、edit.php
で利用可能なパラメータ/アクションについての概要がない限り、あなたがいくつかのドキュメンテーションを要求することに関して。それでは、あなた自身が言ったように、いくつかのソースコードの検査をしましょう、あなたはedit.php
からあなたのアプローチのためのインスピレーションを得ました、それで我々はそこから始めます。
変数 $doaction
のために混乱しています。これは次のように設定されています。
$doaction = $wp_list_table->current_action();
$wp_list_table
が 初期化済み であることを知る必要があります。
$wp_list_table = _get_list_table('WP_Posts_List_Table');
そのため、 _get_list_table()
を使用すると、
WP_List_Tableクラスのインスタンスを取得します。
この場合、呼び出しから見て、 WP_Posts_List_Table
です。
上記のように、アクションを決定するためにメソッド current_action()
が呼び出されます。これは実際には親クラスに依存しています
return parent::current_action();
これはクラス WP_List_Table
で、アクションは次のように current_action()
によって設定されます。
/**
* Get the current action selected from the bulk actions dropdown.
*
* @since 3.1.0
* @access public
*
* @return string|false The action name or False if no action was selected
*/
public function current_action() {
if ( isset( $_REQUEST['filter_action'] ) && ! empty( $_REQUEST['filter_action'] ) )
return false;
if ( isset( $_REQUEST['action'] ) && -1 != $_REQUEST['action'] )
return $_REQUEST['action'];
if ( isset( $_REQUEST['action2'] ) && -1 != $_REQUEST['action2'] )
return $_REQUEST['action2'];
return false;
}
認識されている - edit.php
で - パラメータaction
の値は次のとおりです。
trash
untrash
edit
delete
およびdelete_all
$doaction
の場合はswitch
、そしてその前に delete_all
の場合は追加の条件 が見られるので.