我得到我的WordPress的仪表板下面的错误,其相关的一段代码我写的,但我不知道如何修复错误:WordPress的不确定指标问题PHP
Notice: Undefined index: draft in /home/sites/samskirrow.com/public_html/skizzar-test/wp-content/mu-plugins/skizzar-dashboard.php on line 331
下面是它指的是代码:
/******************************************************************
/* REMOVE BRACKETS AROUND PAGE COUNTS
/******************************************************************/
foreach(array('edit-post', 'edit-page', 'edit-movie', 'upload') as $hook)
add_filter("views_$hook" , 'wpse_30331_custom_view_count', 10, 1);
function wpse_30331_custom_view_count($views)
{
global $current_screen;
switch($current_screen->id)
{
case 'edit-post':
$views = wpse_30331_manipulate_views('post', $views);
break;
case 'edit-page':
$views = wpse_30331_manipulate_views('page', $views);
break;
case 'edit-movie':
$views = wpse_30331_manipulate_views('movie', $views);
break;
case 'upload':
$views = wpse_30331_manipulate_views('attachment', $views);
break;
}
return $views;
}
function wpse_30331_manipulate_views($what, $views)
{
global $user_ID, $wpdb;
/*
* This is not working for me, 'artist' and 'administrator' are passing this condition (?)
*/
if (!current_user_can('artist'))
return $views;
/*
* This needs refining, and maybe a better method
* e.g. Attachments have completely different counts
*/
$total = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE (post_status = 'publish' OR post_status = 'draft' OR post_status = 'pending') AND (post_author = '$user_ID' AND post_type = '$what') ");
$publish = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_author = '$user_ID' AND post_type = '$what' ");
$draft = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = '$user_ID' AND post_type = '$what' ");
$pending = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'pending' AND post_author = '$user_ID' AND post_type = '$what' ");
$trash = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'trash' AND post_author = '$user_ID' AND post_type = '$what' ");
/*
* Only tested with Posts/Pages
* - there are moments where Draft and Pending shouldn't return any value
*/
$views['all'] = preg_replace('/\(.+\)/U', ''.$total.'', $views['all']);
$views['publish'] = preg_replace('/\(.+\)/U', ''.$publish.'', $views['publish']);
$views['draft'] = preg_replace('/\(.+\)/U', ''.$draft.'', $views['draft']);
$views['pending'] = preg_replace('/\(.+\)/U', ''.$pending.'', $views['pending']);
$views['trash'] = preg_replace('/\(.+\)/U', ''.$trash.'', $views['trash']);
return $views;
}
我知道,问题是,某些参数不是在数据库中(例如,可能没有任何“待定”的帖子),所以它抛出一个错误。例如,如果参数存在,我该如何编码?
此处的目标是从wordpress中的帖子数中删除'('''')括号。因此,当您在视图帖子或查看页面屏幕上时,在帖子/页面列表的上方有一个子菜单,其中包含以下项目:'all','published','trash','pending' - 这些是过滤器用户可以点击。每个过滤器旁边都有一个数字,即该过滤器中的帖子/页数。这个计数的格式是([NUMBER]) - 这个代码是简单地去掉那些括号。
[PHP:“通知:未定义变量”和“通知:未定义指数”]的可能的复制(HTTP:/ /stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) –
我不明白这段代码应该做什么 - 你可以添加一些关于目标的更多细节你正在努力实现? – vard
@vard - 我已将我的目标添加到我的描述 –