我的wordpress仪表板中出现以下错误,该错误与我编写的一段代码有关,但我不确定如何解决错误:
AuthorisedAction
以下是它所指的代码:
Notice: Undefined index: draft in /home/sites/samskirrow.com/public_html/skizzar-test/wp-content/mu-plugins/skizzar-dashboard.php on line 331
我知道问题是在db中找不到某些参数(例如,可能没有任何"挂起"帖子),因此它会抛出错误。我怎样才能解决这个问题,例如,如果参数存在......
此处的目标是删除'('')' wordpress中的帖子计数括号。因此,当您在视图帖子或查看页面屏幕上时,在帖子/页面列表上方有一个子菜单,其中包含以下项目'所有','已发布',&# 39;垃圾','待定' - 这些是用户可以单击的过滤器。每个过滤器旁边都有一个数字,即该过滤器中的帖子/页数。这个计数的格式是([NUMBER]) - 这个代码只是去掉那些括号。
答案 0 :(得分:2)
我注意到谷歌有点你正在使用代码格式this Wordpress SE answer。这与您的需求不符,因为此代码是在重新计算OP对其进行一些操作后的帖子数量。
要删除括号,请查看 class-wp-list-table.php 中的以下函数:
public function views() {
$views = $this->get_views();
$views = apply_filters( "views_{$this->screen->id}", $views );
if ( empty( $views ) )
return;
$this->screen->render_screen_reader_content( 'heading_views' );
echo "<ul class='subsubsub'>\n";
foreach ( $views as $class => $view ) {
$views[ $class ] = "\t<li class='$class'>$view";
}
echo implode( " |</li>\n", $views ) . "</li>\n";
echo "</ul>";
}
这是构建您尝试更改的用户菜单的功能。如果你仔细观察这一点,你会发现$view
被回应的来自$views
之前被过滤:
$views = apply_filters( "views_{$this->screen->id}", $views )
$this->screen->id
代表当前屏幕的ID,例如edit-post
。
因此,通过添加这个简单的过滤器,您将实现您想要做的事情:
add_filter('views_edit-post', 'remove_count_parenthesis', 10, 1);
function remove_count_parenthesis($views) {
foreach($views as $key => $view) {
$views[$key] = str_replace(array('(', ')'), '', $view);
}
return $views;
}
答案 1 :(得分:1)
您需要检查数组中是否有值'draft'
if (isset( $views['draft'] )) {
$views['draft'] = preg_replace( '/\(.+\)/U', ''.$draft.'', $views['draft'] );
}