我一直在尝试在管理员侧栏上显示一个待处理的计数,用于待处理的帖子,例如待处理评论中出现的小气泡:
离题题:我是不是唯一一个认为这应该是核心行为的人?我应该在哪里推荐此功能?
总之,我发现this plugin, 但我注意到它并不总是奏效。有时,通知程序会出现在页面或其他项目上。
它用于添加挂起计数的代码如下所示:
$menu[5][0] .= " <span class=\'update-plugins count-$pending_count\'><span class=\'plugin-count\'>" . number_format_i18n($pending_count) . \'</span></span>\';
所以,很明显,问题是那里的硬编码5,但我如何才能更新它,使其始终指向帖子?
如果我们知道答案,我很乐意将此更改提交给插件。
谢谢
SO网友:somatic
作为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;
}
将其放入函数中。php,无需插件。
SO网友:Davs Howard
我对Social的帖子做了一点修改,允许多种帖子类型:
// 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\');