添加待审核文章数量气泡提醒到 WordPress 文章菜单-类似主题插件升级或评论提醒

文 / @WordPress主题

小本本的自我介绍

作为一名WordPress插件开发者,在实际开发过程中,遇到了一些添加消息提醒到后台菜单的需求,例如主题插件升级或待审核评论提醒,但是WordPress并没有提供这样的接口。在网上研究了很久,发现实现这个功能有不止一种方法。

通过添加提醒消息到 add_menu_classes filter 的方法

这种方法非常灵活,可以在开发WordPress主题时,添加提醒消息到已有的菜单项目上。

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;

//需要添加提醒的菜单项目
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;
}

AnsPress 的实现方法

这种实现方法是通过直接添加提醒消息字符串到菜单名称标签后面的方法实现的,比较直接,适合需要添加提醒消息到新创建菜单的时候使用。

add_menu_page('AnsPress','AnsPress'.$counts['total'],'delete_pages','anspress',array($this,'dashboard_page'),ANSPRESS_URL.'/assets/answer.png',$pos);

WooCommerce 的实现方法

这种方法和上面 AnsPress 的方法类似,也是直接把提醒消息添加到了菜单名称标签后面。

if(apply_filters('woocommerce_include_processing_order_count_in_menu',true)&&current_user_can('manage_woocommerce')&&($order_count=wc_processing_order_count())){
	foreach($submenu['woocommerce'] as $key => $menu_item){
		if(0 === strpos($menu_item[0],_x('Orders','Admin menu name','woocommerce'))){
			$submenu['woocommerce'][$key][0] .= ''.number_format_i18n($order_count).'';
			break;
		}
	}
}

通过上面的代码示例,我们可以发现,添加提醒消息的方法非常简单,只需要获取一个数量,然后加上一些显示起泡效果的前端代码,最后添加到菜单里面即可。掌握了这个方法,我们还可以添加其他类型的提醒,例如待处理用户提交的信息的提醒。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。