J'ai découvert ce code et fonctionne bien pour masquer les pages dans la liste des pages d'administration, mais j'ai besoin d'un moyen de le faire pour mille pages:
add_action( 'pre_get_posts' ,'hide_pages_87ff65f5f' );
function hide_pages_87ff65f5f( $query ) {
if( !is_admin() )
return $query;
global $currentpage;
$pages = array('2389','2605','2640','2970','2626');
if( 'edit.php' == $currentpage && ( get_query_var('post_type') && 'page' == get_query_var('post_type') ) )
$query->set( 'post__not_in', $pages );
return $query;
}
Parce que j'ai migré un grand site statique et que je veux masquer plusieurs pages et types de publications de ce mois et de cette année spécifiques, j'ai essayé query et get_posts mais quelque chose ne fonctionne pas, ou peut-être n'est pas possible ici: S
Enfait, je dois masquer le contenu de chaque contexte dans la boîte à options parent du panneau d’administration du panneau d’administration, mais cela suffit pour le moment.
Merci beaucoup pour toute aide!
Le code que vous avez posté ne fonctionne pas car il n'y a pas de global $currentpage
.
Il y a $current_screen
et $pagenow
.
add_action( 'pre_get_posts', 'wpse_63414_hide_pages' );
function wpse_63414_hide_pages( $query ) {
if( !is_admin() )
return $query;
global $pagenow;
$pages = array('2','26');
if(
'edit.php' == $pagenow
&& ( get_query_var('post_type') && 'page' == get_query_var('post_type') )
)
$query->set( 'post__not_in', $pages );
return $query;
}
Et pour masquer le tableau de pages dans les listes déroulantes, ces filtres doivent être utilisés:
add_filter( 'page_attributes_dropdown_pages_args', 'wpse_63414_hide_dropdown_pages' );
add_filter( 'quick_edit_dropdown_pages_args', 'wpse_63414_hide_dropdown_pages' );
function wpse_63414_hide_dropdown_pages( $args )
{
$args['exclude'] = '2,26';
return $args;
}
Les enfants des pages exclues ne sont pas également affichés. Bien que je ne sois pas sûr que ce soit le comportement attendu ...