Пользовательский столбец администратора исчезает при использовании быстрого редактирования [дублировать]


Я добавил столбец избранных изображений в свои сообщения в администраторе WP. Все это работает нормально, за исключением случаев использования функции быстрого редактирования. После обновления столбец исчезает или, скорее, не возвращается функцией сохранения ajax. Заголовок столбца остается, но обновляемая строка больше не имеет признака ячейка изображения, в результате чего в конце строки появляется "пустая" ячейка (все ячейки по умолчанию сдвигаются влево).

Я не уверен, где искать решение этой проблемы, и мне не повезло найти ответ.

Спасибо за любую помощь.

РЕДАКТИРОВАТЬ: Вот код для добавления пользовательского столбца. Фильтр и действие вызываются в __конструкции плагина

    // 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');
            }
        }
    }
Author: edeneye, 2013-11-13

1 answers

Я использую Шаблон плагина Тома Макфарлина для плагинов, которые я пишу, и в основном файле плагина есть условное выражение, чтобы все было как можно проще в администраторе:

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

Поскольку функция быстрого редактирования использует AJAX, столбец не создавался заново при быстром сохранении редактирования. Изменение приведенной выше строки на:

if ( is_admin() ) {
  ...
}

Решена проблема, и пользовательский столбец появляется при сохранении с помощью быстрого редактирования.

Надеюсь, это поможет кому-то, кто может столкнуться тот же тип проблемы.

Спасибо.

 1
Author: edeneye, 2013-11-19 15:05:08