投稿された記事の一覧が表示されているページ:example.domain.com/wp-admin/edit.php
右上隅に[画面オプション]タブがあります。これをクリックすると、メニューがスライドします。このスライドダウンメニューには、チェックボックスが含まれています。これらのチェックボックスをオンまたはオフにすると、チェックされているかどうかに応じて、投稿テーブルの特定の列が表示/非表示になります。
この投稿の種類(デフォルトの投稿の種類:post)に登録されているすべての画面オプションの一覧をプログラムで取得する方法を探しています。これらの登録済み画面オプションのリストを取得したら、特定の一連のオプションがリストされているかどうかを確認します。彼らがリストされたアイテムと一致するならば、私はそれらのオプションを取り除くことを計画します。
質問プログラムで、投稿タイプに関するすべての登録済み画面オプションのリストを取得するにはどうすればよいですか(各投稿をリストした表のあるページ)。
追加/編集の投稿タイプ から特定の画面オプションとメタボックスを削除するために提供される解決策に似た解決策を探しています。
必要なのは、リスト表示中に使用される$columns
変数を変更することです。これは、それぞれ'manage_posts_columns'
および'manage_pages_columns'
のpost_type='post'
およびpost_type='page'
フックを使用して変更できます。カスタム投稿タイプを無視したい場合は、例で示したように'manage_posts_columns'
に渡される2番目のパラメータを調べてください。
それで、あなたが「コメント」スクリーンオプションを取り除きたいとしましょう、そしてそれはあなたがそれぞれ投稿とページのためにこれらのスクリーンショットで見る列:
次のクラスをあなたのテーマのfunctions.php
ファイルまたはあなたが構築しようとしているプラグインにドロップすると、このコードは "Comments"スクリーンオプションとそれに関連する列を削除します。答えはあなたの 他の質問 に似ています、私は"2"
をクラス名に加えました、それでMichael_Ecklunds_Admin_Customizer2
):
class Michael_Ecklunds_Admin_Customizer2 {
function __construct() {
add_action( 'manage_pages_columns', array( $this, 'manage_columns' ) );
add_action( 'manage_posts_columns', array( $this, 'manage_columns' ), 10, 2 );
}
function manage_columns( $columns, $post_type = 'page' ) { //2nd param not passed for pages
if ( in_array( $post_type, array( 'post', 'page' ) ) ) {
// This is only for posts and pages, 'if (in_array(...))' just illustrates how.
unset( $columns['comments'] );
}
return $columns;
}
}
new Michael_Ecklunds_Admin_Customizer2();
上記のコードをWordPress 3.4サイトに追加した後の外観は次のとおりです。
PhpStorm内で Zendデバッガを使用する これが$columns
フック内の'manage_posts_columns'
の検査です。 WordPress 3.4のデフォルトインストールがPost編集リストにどのような値を持つか(私の例で参照した配列インデックスに丸を付けました、すなわち$columns['comments']
:
うまくいけば、これはあなたが探していたものですか?