quick_edit_custom_box
Срабатывает для каждого столбца таблицы (записей, рубрик) в режиме быстрого редактирования.
Использование
add_action( 'quick_edit_custom_box', 'wp_kama_quick_edit_custom_box_action', 10, 3 ); /** * Function for `quick_edit_custom_box` action-hook. * * @param string $column_name Name of the column to edit. * @param string $post_type The post type slug, or current screen name if this is a taxonomy list table. * @param string $taxonomy The taxonomy name, if any. * * @return void */ function wp_kama_quick_edit_custom_box_action( $column_name, $post_type, $taxonomy ){ // action... }
- $column_name(строка)
- Имя (ключ) колонки.
- $post_type(строка)
- Ярлык (slug) типа записи или текущее имя экрана, если это таблица списка таксономии.
- taxonomy(строка)
- Имя таксономии или что-либо другое.
Примеры
#1 Поле "Просмотры" при быстром редактировании
Пример добавляет колонку "Просмотры" и соответствующее поле в панель быстрого редактирования записи.
<?php add_filter( 'manage_post_posts_columns', function ( $columns ) { $my_columns = [ 'views' => 'Просмотры', ]; return $columns + $my_columns; } ); add_action( 'manage_post_posts_custom_column', function ( $column_name ) { if ( $column_name === 'views' ) { echo (int) get_post_meta( get_the_ID(), 'views', true ); } } ); add_action( 'quick_edit_custom_box', 'display_custom_quickedit_book', 10, 2 ); function display_custom_quickedit_book( $column_name, $post_type ) { if ( 'views' === $column_name && 'post' === $post_type ): ?> <fieldset class="inline-edit-col-right"> <div class="inline-edit-col"> <div class="inline-edit-group wp-clearfix"> <label class="inline-edit-group"> <?php if ( $column_name === 'views' ) { $views = (int) get_post_meta( get_the_ID(), 'views', true ); ?> <span class="title">Просмотры</span> <input type="number" name="views" value="<?php echo $views; ?>"/> <?php } ?> </label> </div> </div> </fieldset> <?php endif; } add_action( 'save_post', 'save_views_meta', 10, 2 ); function save_views_meta( $post_id, $post ) { // Не работаем с автосохранением if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return $post_id; } // Не работаем с типа записей, отличными от post, а также, если пользоваль не имеет прав редактирования if ( 'post' !== $post->post_type || ! current_user_can( 'edit_post', $post_id ) ) { return $post_id; } // Проверяем защитный код if ( ! isset( $_REQUEST['_inline_edit'] ) || ! wp_verify_nonce( $_REQUEST['_inline_edit'], 'inlineeditnonce' ) ) { return $post_id; } // Обновляем поле if ( isset( $_POST['views'] ) ) { update_post_meta( $post_id, 'views', (int) $_POST['views'] ); } return $post_id; }
Список изменений
С версии 2.7.0 | Введена. |
Где вызывается хук
quick_edit_custom_box
quick_edit_custom_box
wp-admin/includes/class-wp-posts-list-table.php 2071
do_action( 'quick_edit_custom_box', $column_name, $screen->post_type, '' );
wp-admin/includes/class-wp-terms-list-table.php 724
do_action( 'quick_edit_custom_box', $column_name, 'edit-tags', $this->screen->taxonomy );