WordPress как на ладони

quick_edit_custom_boxхук-событиеWP 2.7.0

Срабатывает для каждого столбца таблицы (записей, рубрик) в режиме быстрого редактирования.

Использование

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(строка)
Имя таксономии или что-либо другое.

Примеры

0

#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 Введена.

Где вызывается хук

WP_Posts_List_Table::inline_edit()
quick_edit_custom_box
WP_Terms_List_Table::inline_edit()
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 723
do_action( 'quick_edit_custom_box', $column_name, 'edit-tags', $this->screen->taxonomy );

Где используется хук в WordPress

Использование не найдено.
campusboy 4742youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 9601
2 комментария
    Войти