Pour mon type de publication personnalisé, je souhaite uniquement disposer des options "Publié" et "Brouillon" dans les écrans d'édition en bloc et d'édition rapide, c'est-à-dire.
J'ai essayé de m'accrocher au filtre quick_edit_dropdown_pages_args
mais il ne semble pas se faire virer. J'ai inséré une wp_die()
dans mon rappel, mais l'écran d'administration répertorie tous les messages comme si rien n'avait changé. Une idée?
Merci d'avance.
En répondant à cette question , nous avons trouvé une solution jQuery à celle d'Ana Ban.
add_action( 'admin_head', 'wpse_56551_script_enqueuer' );
function wpse_56551_script_enqueuer()
{
global $current_screen;
/**
/wp-admin/edit.php?post_type=post
/wp-admin/edit.php?post_type=page
/wp-admin/edit.php?post_type=cpt == gallery in this example
*/
if( 'edit-gallery' == $current_screen->id )
{
?>
<script type="text/javascript">
jQuery(document).ready( function($) {
$("a.editinline").live("click", function () {
var ilc_qe_id = inlineEditPost.getId(this);
setTimeout(function() {
$('#edit-'+ilc_qe_id+' select[name="_status"] option[value="pending"]').remove();
$('#edit-'+ilc_qe_id+' select[name="_status"] option[value="private"]').remove();
}, 100);
});
$('#doaction, #doaction2').live("click", function () {
setTimeout(function() {
$('#bulk-edit select[name="_status"] option[value="pending"]').remove();
$('#bulk-edit select[name="_status"] option[value="private"]').remove();
}, 100);
});
});
</script>
<?php
}
/**
/wp-admin/post.php?post=21&action=edit
*/
if( 'gallery' == $current_screen->id )
{
?>
<script type="text/javascript">
jQuery(document).ready( function($) {
$('#post_status option[value="pending"]').remove();
$('#post_status option[value="private"]').remove();
});
</script>
<?php
}
}
[réponse originale]
En recherchant ce filtre dans
/wp-admin/
, nous le trouvons situé à/wp-admin/includes/class-wp-posts-list-table.php
. Et on voit qu’il s’agit de la hiérarchie des publications, pas du statut ...Plus bas dans ce fichier, nous trouvons le groupe d'état, mais il n'a pas de filtre , donc je suppose qu'il n'y aura pas de solution accrochée ...
// starting at line 950 <div class="inline-edit-group"> <label class="inline-edit-status alignleft"> <span class="title"><?php _e( 'Status' ); ?></span> <select name="_status"> <?php if ( $bulk ) : ?> <option value="-1"><?php _e( '— No Change —' ); ?></option> <?php endif; // $bulk ?> <?php if ( $can_publish ) : // Contributors only get "Unpublished" and "Pending Review" ?> <option value="publish"><?php _e( 'Published' ); ?></option> <option value="future"><?php _e( 'Scheduled' ); ?></option> <?php if ( $bulk ) : ?> <option value="private"><?php _e( 'Private' ) ?></option> <?php endif; // $bulk ?> <?php endif; ?> <option value="pending"><?php _e( 'Pending Review' ); ?></option> <option value="draft"><?php _e( 'Draft' ); ?></option> </select> </label>