Je suis en train de modifier la liste des publications d'un type de publication personnalisé et je souhaite supprimer tous les éléments de la tête de tablenav, comme ce qui est indiqué dans l'image suivante.
Est-ce que wordpress a un crochet spécial pour ça, ou devrais-je utiliser le sale chemin?
Je ne sais pas ce que vous entendez par sale façon, espérons-le pas édition de base!
Vous pouvez le cacher avec CSS.
Ou vous pouvez le faire avec PHP - voir ci-dessous:
Vous pouvez supprimer la partie vues avec
add_filter( 'views_edit-post', '__return_null' );
pour le type de poste post
sur l'écran edit.php
.
L'objet post table est créé à partir de:
$wp_list_table = _get_list_table('WP_Posts_List_Table');
mais il n'y a pas de filtre disponible dans la fonction _get_list_table()
.
WP_Posts_List_Table
Voici donc une solution de contournement en étendant la classe WP_Posts_List_Table
et en remplaçant ses méthodes dans le filtre views_edit-post
- n'essayez pas cela à la maison! ;-)
/**
* 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;
} );
} );
Voici un exemple de capture d'écran:
Avant:
Après:
La réponse fournie par @birgire est une méthode programmatique solide de traitement de la demande mais, comme il l'a fait remarquer, ses solutions sont un peu délicates, car WP core manque d'un filtre important.
Pour supprimer simplement, ma méthode préférée serait CSS. Supposons que votre type d'article personnalisé s'appelle "Event", ce CSS fera l'affaire:
.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;
}
Pour vous assurer que ces styles sont chargés sur le tableau de bord WordPress, veillez à le mettre en file d'attente via le crochet "admin_enqueue_scripts" à l'aide de l'aide wp_enqueue_style ().
EDIT: Mise à jour des styles pour séparer les "Actions" "Icônes de vue" et "Pagination" en styles distincts. Comme la pagination est très importante, j'ai pensé que vous voudriez la conserver. Supprimez simplement cette ligne du code ci-dessus pour afficher la pagination mais masquer tout le reste:
.post-type-event .posts-filter .tablenav .tablenav-pages,