管理员WP列表表列丢失

时间:2014-06-18 作者:Bryan Willis

在www.example等页面上使用的wordpress管理表。com/wp管理/编辑。php使用一个class class wp list表。php

在这个类中,有两个函数隐藏特定的表列{display: none;} 可以在以下链接中看到:

wordPress/wp-admin/includes/class-wp-list-table.php

wordPress/wp-admin/includes/class-wp-list-table.php

最近,我一直在努力改进wordpress表,正在开发一个插件,添加固定的表头和实时过滤。我在使用Jquery FilterTable 这非常棒,还有一个粘性头脚本。

大多数粘性表格标题脚本在现有标题到达屏幕顶部时克隆并修复它,同时使用css display:none或visibility:hidden隐藏旧标题。一切都可以看到here

Jquery筛选表也使用display:none来进行实时筛选,方法是隐藏用户搜索中未找到的结果。

由于某些原因,在更新页面/帖子时,这些样式会干扰类wp列表。它使“显示:无”成为永久性的。起初我以为这是缓存问题,但我禁用了所有插件并清除了缓存。我甚至还重新安装了wordpress。我在安装codepress admin columns后第一次注意到了这一点,但我删除了插件,它没有修复任何问题。

display : none; 内嵌在几个表标题及其相关列上

wordpress似乎存储了所有html表列的值,而不仅仅是值。

我知道它会缓存用于分页的表,但我不确定这一切是如何发生的。

我想知道为什么会发生这种情况,但更重要的是,我如何修复这些表,因为它们似乎存储/缓存在数据库的某个地方?我已经停用了每个插件,重置为214,运行了allow\\u repair脚本,并清除了所有孤立/瞬态。我已清除服务器缓存和计算机浏览器缓存。

显示缺失列的图像:

Image showing missing columns

Image showing display:none added to title

Display none also added to td columns

enter image description here

3 个回复
最合适的回答,由SO网友:Bryan Willis 整理而成

这是wordpress AJAX试图更新的错误manageedit-pagecolumnshidden 隐藏列时在管理表页面上。当表头被视觉隐藏时,它完全破坏了整个管理表。多亏了迈克尔·埃克隆德的线索,我才能够找到答案。

我在这里创建了票据:

https://core.trac.wordpress.org/ticket/29030

可在此处查看该问题的视频:

https://www.youtube.com/watch?v=lZKjUpFx_yc&feature=youtu.be

SO网友:Rarst

可以通过界面(admin的右上角)中的“屏幕选项”禁用表中的可见列。如果插件被禁用,您可能会看到这样的情况。

SO网友:Bryan Willis

无论是什么原因导致了这个问题,我注意到我之前没有设置的列是唯一在停用所有内容后显示的列。

要解决此问题,我使用以下筛选器取消设置缺少的列:

function remove_all_pages_columns_to_fix_hidden($columns) {
  unset($columns[\'cb\']); // Remove checkbox column
  unset($columns[\'title\']); // Remove title column
  return $columns;
}
add_filter(\'manage_pages_columns\', \'remove_all_pages_columns_to_fix_hidden\');
然后我转到编辑页面并更新了页面。我很确定这个问题与WP\\u List\\u Table&;管理ajax。php协同工作。

Edit:

感谢Michael Ecklund指出manageedit pagecolumnshidden

columnshidden出现在wp_ajax_hidden_columns() &;get_hidden_columns()....

此处的管理ajax客户端功能似乎位于common.js 检查hidden table headers

这一切工作方式的问题是,它在将表示与行为逻辑分离方面做得很差。

例如,如果在任何时间或原因thead { display: none; }.column-title { display: none; }#cb { display: none; } 或任何类似的操作,整个表都将为该用户中断。WP_List_Table 不应该指望这样的事情不会发生。在我的例子中,我试图创建一个粘性的表头脚本,但我可以看到很多wordpress开头,它们不知道如何正确地remove them, 尝试使用css显示:无;一旦更新,就会破坏他们的编辑表columnshidden. manageedit-{$post\\u type}列不应依赖于输入字段的可见性,而只应依赖于实际选中的输入字段。

Edit 2:虽然问题本身有点不同,但我认为这可能与其他类似问题非常相似:

WP List Table custom quick edit box - post meta data missing and columns change on submit

Custom admin column disappearing when using Quick Edit

Wordpress admin WP_table_list show incorrectly

https://core.trac.wordpress.org/ticket/21016

结束

相关推荐

表单不能使用AJAX插件将数据插入数据库

我已经为此工作了几个星期,但没有成功。我已经解决了代码中的一个又一个问题,但似乎没有一个更正可以解决我的核心问题。表单没有向数据库中插入任何内容,我也不知道为什么。在这个特定的示例中,在转到以下URL时提交结果:(myurl)/?dname=吉隆坡(&;年龄=56岁;动作=课后。主页是加载的内容。我是从网上的示例和教程中拼凑出来的。我是ajax和WordPress插件的新手,所以我可能遗漏了一些明显的东西。请帮我知道我哪里做错了。排队:add_action( \'plugins_loaded