カスタム投稿タイプの投稿リスト画面を変更しています。次の図に示すように、tablenavヘッド上のすべてのものを削除したいです。
ワードプレスにはそのための特別なフックがありますか、それとも私は汚い方法を使う必要があるでしょうか?
ダーティウェイ、うまくいけばではないコア編集であなたが何を意味するのかわかりません!
あなたはCSSでそれを隠すことができます。
それともPHPでそれを行うことができます - 下記参照:
あなたはviews部分を削除することができます
add_filter( 'views_edit-post', '__return_null' );
edit.php
画面のpost
投稿タイプの場合。
Postテーブルオブジェクトは以下から作成されます。
$wp_list_table = _get_list_table('WP_Posts_List_Table');
しかし_get_list_table()
関数には利用可能なフィルタがありません。
WP_Posts_List_Table
クラスを拡張するWP_Posts_List_Table
クラスを拡張し、views_edit-post
フィルター内でそのメソッドをオーバーライドすることによる回避策があります - 自宅でこれを試してはいけない!
/**
* Headless post table
*
* @link http://wordpress.stackexchange.com/a/205281/26350
*/
add_action( 'load-edit.php', function()
{
// Target the post edit screen
if( 'edit-post' !== get_current_screen()->id )
return;
// Include the WP_Posts_List_Table class
require_once ( ABSPATH . 'wp-admin/includes/class-wp-posts-list-table.php' );
// Extend the WP_Posts_List_Table class and remove stuff
class WPSE_Headless_Table extends WP_Posts_List_Table
{
public function search_box( $text, $input_id ){} // Remove search box
protected function pagination( $which ){} // Remove pagination
protected function display_tablenav( $which ){} // Remove navigation
} // end class
$mytable = new WPSE_Headless_Table;
// Prepare our table, this method has already run with the global table object
$mytable->prepare_items();
// Override the global post table object
add_filter( 'views_edit-post', function( $views ) use ( $mytable )
{
global $wp_list_table;
// Let's clone it to the global object
$wp_list_table = clone $mytable;
// Let's remove the views part also
return null;
} );
} );
これがスクリーンショットの例です。
前:
の後:
@birgireが提供する答えは、要求を処理するための確かなプログラム的な方法ですが、彼が指摘したように、WP coreには重要なフィルターが欠けているので、彼の解決策は少し難しくなります。
単純に抑制するために、私の推奨する方法はCSSです。あなたのカスタム投稿タイプが "Event"と呼ばれると仮定しましょう。このCSSは確実にトリックを行います:
.post-type-event .subsubsub,
.post-type-event .posts-filter .tablenav .actions,
.post-type-event .posts-filter .tablenav .view-switch,
.post-type-event .posts-filter .tablenav .tablenav-pages,
.post-type-event .posts-filter .search-box {
display: none;
}
これらのスタイルがWordPressダッシュボードに確実にロードされるようにするには、必ず "admin_enqueue_scripts"フックを介してwp_enqueue_style()ヘルパーを使用してエンキューしてください。
編集: "アクション"、 "アイコンの表示"、 "ページ付け"を別々のスタイルに分けるようにスタイルを更新しました。ページ付けは非常に重要なので、私はあなたがそれを維持したいと思うかもしれないと思いました。上記のコードからこの行を削除するだけでページネーションが表示されますが、それ以外はすべて非表示になります。
.post-type-event .posts-filter .tablenav .tablenav-pages,