В современном развитии сайтов на WordPress одной из частых задач становится необходимость автоматизировать процессы, связанные с просмотром и редактированием записей. Особенно это актуально для проектов с большим количеством контента и пользователей, которым необходимо упростить работу с записями, снизить риски ошибок при редактировании и повысить скорость обработки данных.
Почему стоит автоматизировать управление записями WordPress
Ручное управление постами и страницами в админке WordPress часто занимает много времени. Особенно, если нужно массово обновлять поля, изменять статусы или фильтровать контент по сложным критериям. Автоматизация позволяет:
- Ускорить процессы редактирования и просмотра записей;
- Избавить редакторов от рутинных действий;
- Снизить вероятность ошибок при массовых изменениях;
- Настроить кастомные фильтры и интерфейсы для удобной работы.
Для реализации таких решений можно использовать как готовые плагины, так и собственные функции, которые интегрируются в тему или отдельный плагин.
Плагины для автоматизации работы с записями
Для упрощения задачи стоит рассмотреть уже готовые плагины, которые помогут автоматизировать различные аспекты:
- Admin Columns Pro – позволяет настраивать колонки в списках записей, добавлять кастомные поля, фильтры и быстрые действия;
- WP Sheet Editor – превращает список записей в табличный редактор, похожий на Excel, для массового редактирования;
- Bulk Edit Posts and Products in Spreadsheet – еще один мощный инструмент для массового редактирования записей;
- Clearfy Pro – частично оптимизирует админку, убирает ненужные элементы, что косвенно помогает работать быстрее.
Однако, когда нужны узкоспециализированные сценарии автоматизации, лучше создавать свои кастомные решения.
Создание кастомного автоматического просмотра и редактирования записей: основы
Рассмотрим пример, как создать функцию для автоматического обновления определённого поля при просмотре записи, а также добавить кнопку в список записей для быстрого редактирования без перехода на страницу редактирования.
Автоматическое обновление поля при просмотре записи
Задача: при каждом просмотре записи увеличивать счетчик просмотров и сохранять в метаполе wpskill_post_views.
function wpskill_update_post_views($post_id) {
if ( !is_singular() ) return;
if ( empty($post_id) ) {
global $post;
$post_id = $post->ID;
}
$views = (int) get_post_meta($post_id, 'wpskill_post_views', true);
$views++;
update_post_meta($post_id, 'wpskill_post_views', $views);
}
add_action('wp_head', 'wpskill_update_post_views');Объяснение: мы подключаемся к хук wp_head, который срабатывает при выводе страницы. Проверяем, что это одиночная запись, получаем ID и обновляем метаполе с количеством просмотров. Этот счетчик можно использовать для аналитики или сортировки записей.
Добавление кнопки быстрого редактирования в админке
Чтобы ускорить редактирование, добавим в список записей колонку с кнопкой "Быстрое редактирование". При нажатии откроется модальное окно с формой редактирования заголовка и статуса публикации.
function wpskill_add_quick_edit_button_column($columns) {
$columns['wpskill_quick_edit'] = 'Быстрое редактирование';
return $columns;
}
add_filter('manage_posts_columns', 'wpskill_add_quick_edit_button_column');
function wpskill_render_quick_edit_button($column, $post_id) {
if ($column === 'wpskill_quick_edit') {
echo '<button class="button wpskill-quick-edit-button" data-post-id="'.esc_attr($post_id).'">Редактировать</button>';
}
}
add_action('manage_posts_custom_column', 'wpskill_render_quick_edit_button', 10, 2);Для работы кнопки нужно добавить JavaScript, который откроет модальное окно и позволит редактировать данные через AJAX. Ниже пример простого скрипта:
jQuery(document).ready(function($) {
$('.wpskill-quick-edit-button').on('click', function() {
var postId = $(this).data('post-id');
// Здесь вызвать AJAX для загрузки и показа формы в модальном окне
alert('Открыть форму редактирования для поста ID: ' + postId);
});
});Пример AJAX-обработчика для быстрого редактирования
Для сохранения изменений через AJAX добавим PHP-функцию и регистрацию AJAX-запроса:
function wpskill_ajax_save_quick_edit() {
if (!current_user_can('edit_posts')) {
wp_send_json_error('Нет прав');
}
$post_id = intval($_POST['post_id']);
$title = sanitize_text_field($_POST['title']);
$status = sanitize_text_field($_POST['status']);
$post_data = array(
'ID' => $post_id,
'post_title' => $title,
'post_status' => $status
);
$result = wp_update_post($post_data, true);
if (is_wp_error($result)) {
wp_send_json_error($result->get_error_message());
} else {
wp_send_json_success('Обновлено');
}
}
add_action('wp_ajax_wpskill_save_quick_edit', 'wpskill_ajax_save_quick_edit');Подключение JS и локализация AJAX-URL делается в функции подключения скриптов темы или плагина.
Расширение функционала: фильтры и сортировка по просмотрам
Чтобы использовать счетчик просмотров для фильтрации или сортировки, добавим кастомную колонку с количеством просмотров и возможность сортировки по ней.
function wpskill_add_views_column($columns) {
$columns['wpskill_views'] = 'Просмотры';
return $columns;
}
add_filter('manage_posts_columns', 'wpskill_add_views_column');
function wpskill_show_views_column($column, $post_id) {
if ($column == 'wpskill_views') {
$views = (int) get_post_meta($post_id, 'wpskill_post_views', true);
echo $views ? $views : '0';
}
}
add_action('manage_posts_custom_column', 'wpskill_show_views_column', 10, 2);
function wpskill_register_sortable_views_column($columns) {
$columns['wpskill_views'] = 'wpskill_views';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'wpskill_register_sortable_views_column');
function wpskill_views_column_orderby($query) {
if (!is_admin()) return;
$orderby = $query->get('orderby');
if ('wpskill_views' == $orderby) {
$query->set('meta_key', 'wpskill_post_views');
$query->set('orderby', 'meta_value_num');
}
}
add_action('pre_get_posts', 'wpskill_views_column_orderby');Это позволит редакторам видеть популярность записей и быстро находить самые просматриваемые.
Заключение по теме автоматизации
Автоматизация просмотра и редактирования записей в WordPress помогает оптимизировать рабочие процессы, особенно на крупных сайтах. Использование метаполей для хранения статистики, кастомных колонок и AJAX-редактирования значительно улучшает удобство админки. Комбинируйте готовые плагины с собственными решениями для достижения максимального результата.
Если вы хотите расширить функционал сайта с помощью плагинов, обратите внимание на Clearfy Pro, который оптимизирует админку и повышает производительность, или WPRemark для расширенных возможностей комментирования и управления контентом.