J'ai essayé d'obtenir un nombre en attente à afficher dans la barre latérale d'administration, pour les messages en attente, comme la petite bulle qui apparaît pour les commentaires en attente:
Offtopic: Suis-je le seul à penser qu'il devrait s'agir d'un comportement fondamental? Où devrais-je suggérer cette fonctionnalité?
Quoi qu'il en soit, j'ai trouvé ce plugin , mais j'ai remarqué que cela ne fonctionnait pas toujours. Parfois, le notifiant apparaît sur des pages ou un autre élément.
Le code utilisé pour ajouter le nombre en attente ressemble à ceci:
$menu[5][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
Le problème est donc clairement le code 5, mais comment puis-je le mettre à jour pour qu'il pointe toujours vers les messages?
Je serai ravi de valider cette modification dans le plugin si nous connaissons la réponse.
Merci!
@ign
Remplacez la ligne de code que vous avez postée par la suivante.
foreach( $menu as $menu_key => $menu_data ) :
if( 'edit.php' != $menu_data[2] )
continue;
$menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
endforeach;
..that devrait éviter le besoin de connaître la clé spécifique .. (laissez-moi savoir si des problèmes) ..
J'espère que cela pourra aider.. :)
pour faire suite à la réponse de t31os, voici le code complet nécessaire (combinant le contenu du plug-in mentionné avec le correctif de t31os), avec les modifications permettant de gérer également les types de publication personnalisés:
add_filter( 'add_menu_classes', 'show_pending_number');
function show_pending_number( $menu ) {
$type = "animals";
$status = "pending";
$num_posts = wp_count_posts( $type, 'readable' );
$pending_count = 0;
if ( !empty($num_posts->$status) )
$pending_count = $num_posts->$status;
// build string to match in $menu array
if ($type == 'post') {
$menu_str = 'edit.php';
} else {
$menu_str = 'edit.php?post_type=' . $type;
}
// loop through $menu items, find match, add indicator
foreach( $menu as $menu_key => $menu_data ) {
if( $menu_str != $menu_data[2] )
continue;
$menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
}
return $menu;
}
placez cela dans functions.php, pas besoin du plugin.
J'ai légèrement modifié le message de somatic, ce qui permet de créer plusieurs types de message:
// Add pending numbers to post types on admin menu
function show_pending_number($menu) {
$types = array("post", "page", "custom-post-type");
$status = "pending";
foreach($types as $type) {
$num_posts = wp_count_posts($type, 'readable');
$pending_count = 0;
if (!empty($num_posts->$status)) $pending_count = $num_posts->$status;
if ($type == 'post') {
$menu_str = 'edit.php';
} else {
$menu_str = 'edit.php?post_type=' . $type;
}
foreach( $menu as $menu_key => $menu_data ) {
if( $menu_str != $menu_data[2] )
continue;
$menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
}
}
return $menu;
}
add_filter('add_menu_classes', 'show_pending_number');