Coluna admin personalizada desaparecendo ao usar o Quick Edit [duplicate]

4

Eu adicionei uma coluna de imagem em destaque às minhas postagens no administrador do WP. Tudo isso funciona bem, exceto ao usar o recurso Edição rápida. Na atualização, a coluna desaparece, ou melhor, não é retornada pela função ajax save. O cabeçalho da coluna permanece, mas a linha que está sendo atualizada não tem mais uma célula de imagem em destaque, resultando em uma célula "em branco" no final da linha (todas as células padrão se deslocam para a esquerda).

Não sei ao certo onde procurar resolver esse problema e não tive sorte em encontrar uma resposta.

Obrigado por qualquer ajuda.

EDITAR: Aqui está o código para adicionar a coluna personalizada. O filtro e a ação são chamados na __construct do plugin

    // Set featured image columns
    add_filter('manage_edit-post_columns', array($this, 'set_custom_columns'));
    add_action( 'manage_post_posts_custom_column', array( $this, 'set_custom_column_data' ), 10, 2 );

    /**
     * Function to create featured image column
     * @param $columns
     * @return array
     */
    public function set_custom_columns($columns)
    {

        if ( !is_array( $columns ) ) {
            $columns = array();
        }

        $new_columns = array();

        foreach( $columns as $key => $label ) {
            if ( $key == 'title' ) { // Put the Thumbnail column before the Title column
                $new_columns['featured-image'] = __( 'Image', $this->plugin_slug );
            }

            $new_columns[$key] = $label;
        }

        return $new_columns;
    }

    /**
     * Display custom column data
     */
    public function set_custom_column_data( $column_name, $post_id ) {

        // If featured image column and a featured image exists, display it
        if ( 'featured-image' == $column_name ) {
            if ( has_post_thumbnail( $post_id ) ) {
                echo get_the_post_thumbnail($post_id, 'thumbnail');
            }
        }
    }
    
por edeneye 13.11.2013 / 19:34

1 resposta

1

Estou usando Plugin Boilerplate de Tom McFarlin para os plugins que escrevo e no arquivo de plug-in principal, lá é uma declaração condicional para manter as coisas o mais leves possível no admin:

if ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
  ...
}

Como o recurso Edição rápida usa AJAX, a coluna não estava sendo recriada em um salvamento de edição rápida. Alterando a linha acima para:

if ( is_admin() ) {
  ...
}

resolveu o problema e a coluna personalizada aparece ao salvar via Edição rápida.

Espero que isso ajude alguém que possa ter o mesmo tipo de problema.

Obrigado.

    
por edeneye 19.11.2013 / 16:05