保留中のコメントに表示される小さなバブルのように、保留中の投稿に対して保留中のカウントを管理サイドバーに表示するようにしています。
Offtopic:これが中核的な振る舞いであるべきだと思うのは私だけですか?この機能をどこに提案すればいいですか。
とにかく、私は このプラグインを見つけました しかし、私はそれがいつもうまくいっていないことに気づきました。通知がPagesまたは他の項目に表示されることがあります。
保留カウントを追加するために使用するコードは、次のようになります。
$menu[5][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>';
だから、明らかに問題はそこにハードコーディングされた5ですが、それが常に投稿を指すように更新するにはどうすればいいですか?
私たちが答えを知っていれば、私はこの変更をプラグインにコミットして嬉しく思います。
ありがとうございます。
@ ign
あなたが投稿したコードを以下の行に置き換えてください。
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;
べきである特定のキーを知る必要性を避ける..(問題があれば教えてください)..
それが役立つことを願っています.. :)
t31osの回答へのフォローとして、ここに必要な完全なコード(t31osの修正で言及されたプラグインの内容を組み合わせたもの)と、カスタム投稿タイプを扱うための修正があります:
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;
}
これをfunctions.phpに置きます。プラグインは必要ありません。
私は、複数の投稿タイプを可能にするsomaticの投稿にわずかな変更を加えました:
// 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');