私はまとめて投稿を作成するプラグインを書いています。作成した投稿の特定のパラメータをユーザーが事前に設定できるようにします。しかし、投稿が作成された後に詳細を微調整するために、WordPressのデフォルトの "All Posts"(edit.php
)インターフェースを使用することは有用でしょう。私はclass-wp-list-table.php
を見ました、そして、その機能を複製することは多くの仕事になるでしょう。
最善の解決策は、ユーザーをedit.phpに送信することです - 私のプラグインによって作成された投稿のみに制限されます。私は投稿のIDを持っているので、私はedit.php?id=1&id=2
のような解決策を探していて、それらのIDを持つ投稿だけを持つNiceリストテーブルを明らかにしています。
これは pre_get_posts
を使って実現できます。
すべての変数名に接頭辞を付けることが重要です。id
は 予約語リスト には含まれていないようですが、とにかくこの慣例は予期しないバグを避けます。
/**
* Usage:
* http://example.com/wp-admin/edit.php?my_pids=4088,4090,4092,4094
*/
add_filter( 'pre_get_posts', 'limit_post_list_wpse_96418' );
function limit_post_list_wpse_96418( $query )
{
// Don't run on frontend
if( !is_admin() )
return $query;
global $pagenow;
// Restrict to Edit page
if( 'edit.php' !== $pagenow )
return $query;
// Check for our filter
if( !isset( $_GET['my_pids'] ) )
return $query;
// Finally, filter
$limit_posts = explode( ',', $_GET['my_pids'] ); // Convert comma delimited to array
$query->set( 'post__in', $limit_posts );
return $query;
}