Colunas da tabela Admin WP List Missing

As tabelas de admin wordpress usadas em páginas como www.example.com/wp-admin/edit.php usam uma class class-wp-list-table.php

Nesta class, existem duas funções que escondem colunas de tabelas específicas com {display: none;} que pode ser visto nos seguintes links:

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

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

Recentemente, eu estava tentando melhorar as mesas de wordpress, trabalhando em um plugin adicionando headers de mesa fixos e filtragem ao vivo. Eu estava usando o Jquery FilterTable, que funciona de forma impressionante, juntamente com um script de header.

A maioria dos scripts de header de tabela pegajosa clonam o header existente quando ele chega ao topo da canvas e corrige-o, enquanto esconde o antigo com exibição css: nenhum ou visibilidade: oculto. Tudo pode ser visto aqui

Jquery Filter Table usa exibição: nenhum também para fazer isso é filtrar ao vivo, escondendo os resultados não encontrados na pesquisa dos usuários.

Por algum motivo, esses estilos interferem na tabela class-wp-list ao atualizar páginas / postagens. Isso provoca exibição: nenhuma se torna permanente. Eu pensei que era um problema de cache em primeiro lugar, no entanto eu desativou todos os meus plugins e limpei meu cache. Eu até fui até reinstalar o wordpress. Primeiro observei isso depois de instalar o codepress-admin-columns, mas exclui o plugin e não corrigiu nada.

display : none; foi incorporado em vários headers de tabela e suas colunas relacionadas

Parece que wordpress armazena os valores de todas as colunas da tabela html, não apenas os valores.

Eu sei que armazena as tabelas para a paginação, mas não tenho certeza de como tudo isso ocorre.

Estou me perguntando por que isso aconteceu, mas, mais importante, como posso corrigir as tabelas, pois parece que elas estão armazenadas / em cache em algum lugar no database? Eu desativou todos os plugins, Reponho para os vinte e quatro, executou o script allow_repair e desmarquei todos os órfãos / transientes. Limpei o cache do meu servidor, bem como o cache do navegador dos meus computadores.

Imagem que mostra colunas em falta:

Imagem que mostra colunas em falta

Visualização de imagem mostrada: nenhuma adicionada ao título

Exibir nenhum também adicionado às colunas td

insira a descrição da imagem aqui

Solutions Collecting From Web of "Colunas da tabela Admin WP List Missing"

Este é um bug com o manageedit-pagecolumnshidden AJAX tentando atualizar manageedit-pagecolumnshidden nas páginas da tabela de administração quando as colunas estão ocultas. Ele interrompe completamente todas as tabelas de administração quando os headers das tabelas estão ocultos visualmente. Graças à pista de Michael Ecklund, consegui descobrir.

Eu criei o Ticket aqui:

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

E um vídeo da questão pode ser visto aqui:

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

As colunas visíveis nas tabelas podem ser desabilitadas via “Opções de canvas” na interface (canto superior direito do administrador). Com os plugins desativados, é provável o que você está vendo.

Qualquer que tenha causado o problema, notei que as colunas que eu anteriormente tinha desencadeadas eram as únicas que apareceram depois de desativar tudo.

Para resolver o problema, desmarquei as colunas que faltam com o seguinte filtro:

 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'); 

Então eu fui para a página de edição e atualizei a página. Tenho certeza de que esta questão tem a ver com a forma como o WP_List_Table & admin-ajax.php trabalham juntos.

Editar:

Obrigado @Michael Ecklund por apontar manageedit-pagecolumnshidden

columnshidden aparece em wp_ajax_hidden_columns() & get_hidden_columns() ….

A funcionalidade do lado do cliente admin-ajax aqui parece estar aqui em common.js que verifica os headers da tabela oculta

O problema com a maneira como tudo isso funciona é que ele faz um trabalho bastante pobre de separar a apresentação da lógica do comportamento.

Por exemplo, se em qualquer momento ou motivo thead { display: none; } thead { display: none; } ou .column-title { display: none; } .column-title { display: none; } ou #cb { display: none; } #cb { display: none; } ou qualquer coisa semelhante, a tabela inteira irá pausar para esse usuário. WP_List_Table não deve depender de algo que não está acontecendo. No meu caso, eu estava tentando fazer um script de header de tabela pegajosa, mas eu podia ver muitos iniciadores de wordpress, que não sabem como removê-los corretamente, tente usar o visor de css: nenhum; o que destruiria suas tabelas de edição assim que atualizassem o columnshidden . A coluna manageedit – {$ post_type} não deve confiar na visibilidade e somente nos campos de input verificados.

Editar 2: Embora a questão em si seja um pouco diferente, acho que isso pode ser muito parecido com algumas outras questões como estas:

Tabela de lista de WP checkbox de edição rápida personalizada – dados de metadados de dados perdidos e colunas alteradas no envio

Coluna de administração personalizada desaparecendo ao usar a edição rápida

WordPress admin WP_table_list mostra incorretamente

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