Доступные фильтры:
bulk_actions-edit-post: Post type ‘post’ edit screen
bulk_actions-edit-page: Post type ‘page’ edit screen
bulk_actions-edit-: Custom post type edit screen
bulk_actions-edit-: Custom taxonomy edit screen
bulk_actions-edit-comments: Comments list screen
bulk_actions-plugins: Plugins list screen
bulk_actions-users: Users list screen
bulk_actions-upload: Media library list (only works in list view, not grid view)
Примеры:
Добавляет пункт меню:
<?php
add_filter('bulk_actions-edit-post', function($bulk_actions) {
$bulk_actions['change-to-published'] = __('Change to published', 'txtdomain');
return $bulk_actions;
});
Обработчик пункта меню:
add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {
if ($action == 'change-to-published') {
foreach ($post_ids as $post_id) {
wp_update_post([
'ID' => $post_id,
'post_status' => 'publish'
]);
}
$redirect_url = add_query_arg('changed-to-published', count($post_ids), $redirect_url);
}
return $redirect_url;
}, 10, 3);
Вывод уведомления при выборе действия.
add_action('admin_notices', function() {
if (!empty($_REQUEST['changed-to-published'])) {
$num_changed = (int) $_REQUEST['changed-to-published'];
printf('<div id="message" class="updated notice is-dismissable"><p>' . __('Published %d posts.', 'txtdomain') . '</p></div>', $num_changed);
}
});
Пример обработчика пункта меню
add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {
if ($action == 'mark-as-verified') {
foreach ($post_ids as $post_id) {
update_post_meta($post_id, 'verified', '1');
}
$redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url);
}
return $redirect_url;
}, 10, 3);
на картинке изображен процесс массового редактирования постов:
куда Вы тут хотите встроить текстовое поле для массового редактирования?
слева от кнопки Apply можно встроить текстовое поле. я это делал на JS. создавал скрипт для админов на JS и подключал его на сайте через functions.php (Enqueue Scripts) . текстовое поле будет находиться внутри html-формы для массового редактирования с выбранным действием.
И можно его значение обработать в хуке-обработчике действия - выполнить функцию update_field() для Вашего поля ACF в редактируемом посте.