web-dev-qa-db-fra.com

Changer la valeur de l'option d'écran par défaut pour les messages par page

Je souhaite modifier la valeur de l'option d'écran par défaut pour les publications par page dans la zone wp-admin lors de la publication des publications en mode pending. La valeur par défaut est définie sur 20.

Changer la valeur directement dans l'onglet Options d'écran n'affectera que l'utilisateur. Tous les utilisateurs comme ne le suggère pas cette réponse .

Une solution réalisable?

1
Christine Cooper

Juste une dépendance à @ KrzysiekDróżdż answer .

Lors de l'affichage d'un statut de publication spécifique, la variable de chaîne de requête url 'post_status' est définie sur le nom du statut. Vous pouvez donc utiliser $_GET['post_status'] pour limiter l'effet du code @ KrzysiekDróżdż uniquement pour les publications en attente:

function my_edit_per_page( $result, $option, $user ) {
  $status = filter_input( INPUT_GET, 'post_status', FILTER_SANITIZE_STRING );
  if ( $status === 'pending' && (int) $result < 1 )
  return 20; // or whatever you want
}
add_filter( 'get_user_option_edit_post_per_page', 'my_edit_per_page', 10, 3 );  // for posts
2
gmazzap

Ce ne sera pas très difficile à faire. Ajoutez simplement ceci à votre functions.php ou à votre plugin:

function my_edit_per_page( $result, $option, $user ) {
    if ( (int)$result < 1 )
        return 20; // or whatever you want
}
add_filter( 'get_user_option_edit_page_per_page', 'my_edit_per_page', 10, 3 );  // for pages
add_filter( 'get_user_option_edit_post_per_page', 'my_edit_per_page', 10, 3 );  // for posts

De cette façon, vous modifierez la valeur par défaut. Donc si l'utilisateur le change, il se souviendra du choix de l'utilisateur.

Le seul problème est que ce paramètre est commun à l'ensemble de l'éditeur de type de publication. Je crains que ce ne soit pas si facile de le définir en fonction du statut de la publication (et de ne rien casser).

3
Krzysiek Dróżdż