La columna de administrador personalizada desaparece cuando se usa Edición rápida [duplicado]

4

He agregado una columna de imagen destacada a mis publicaciones en el administrador de WP. Todo esto funciona bien, excepto cuando se usa la función Edición rápida. Tras la actualización, la columna desaparece, o más bien no es devuelta por la función de guardar ajax. El encabezado de la columna permanece, pero la fila que se está actualizando ya no tiene una celda de imagen destacada, lo que da como resultado una celda "en blanco" al final de la fila (todas las celdas predeterminadas se desplazan a la izquierda).

No estoy seguro de dónde buscar para solucionar este problema y no he tenido suerte en encontrar una respuesta.

Gracias por cualquier ayuda.

EDITAR: Aquí está el código para agregar la columna personalizada. El filtro y la acción se llaman en el __construct

del 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');
            }
        }
    }
    
pregunta edeneye 13.11.2013 - 19:34

1 respuesta

1

Estoy usando Plugin Boiler de Tom McFarlin para los complementos que escribo y en el archivo principal de complementos, allí es una declaración condicional para mantener las cosas lo más livianas posible en el administrador:

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

Dado que la función Edición rápida utiliza AJAX, la columna no se estaba recreando en un guardado de Edición rápida. Cambiando la línea anterior a:

if ( is_admin() ) {
  ...
}

solucionó el problema y aparece la columna personalizada cuando se guarda a través de Edición rápida.

Esperemos que esto ayude a alguien que pueda tener el mismo tipo de problema.

Gracias.

    
respondido por el edeneye 19.11.2013 - 16:05

Lea otras preguntas en las etiquetas