✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Підручник: як додати спеціальну групову дію в адміністратор WordPress

5

Над більшістю таблиць елементів адміністратора WordPress (наприклад, дописи, сторінки, коментарі, плагіни та користувачі) ви знайдете функцію WordPress для масових дій. Групові дії дозволяють відмітити кілька елементів, вибрати дію та виконати цю дію для всіх елементів одночасно. У цій публікації ми розглянемо, як додати наші власні масові дії до адміністратора WordPress.

В останніх версіях WordPress (починаючи з версії 4.7) стало набагато простіше додавати спеціальну масову дію. Існує фільтр для параметрів, доступних у розкривному списку; ще один фільтр для того, що він має робити, коли вибрано ваш параметр, і ще один гачок для додаткового показу сповіщення адміністратора. Давайте пройдемося по кожному з них.

Додавання спеціальної групової дії в спадне меню

Давайте почнемо з додавання нашого спеціального групового вибору до спадного списку групових дій. Для цього ми використовуємо фільтр bulk_actions_<screen>, де ви замінюєте будь-який екран адміністратора, до якого хочете додати свій параметр. Ось повний огляд можливих варіантів екрану:

  • bulk_actions-edit-post: екран редагування типу публікації
  • bulk_actions-edit-page: Екран редагування типу публікації "сторінка".
  • bulk_actions-edit-<post-type-name>: Екран редагування власного типу публікації
  • bulk_actions-edit-<custom-taxonomy>: екран редагування спеціальної таксономії
  • bulk_actions-edit-comments: екран списку коментарів
  • bulk_actions-plugins: екран списку плагінів
  • bulk_actions-users: екран списку користувачів
  • bulk_actions-upload: список медіа-бібліотеки (працює лише в режимі перегляду списку, а не в режимі сітки)

Фільтр застосовується до масиву з парами ключ-значення; де ключі — це унікальний ключ для дій, а значення — це мітка, яка з’являється у розкривному списку.

Давайте розглянемо приклад. Я хочу створити групову дію для налаштування дописів як опублікованих.

add_filter('bulk_actions-edit-post', function($bulk_actions) { $bulk_actions['change-to-published'] = __('Change to published', 'txtdomain'); return $bulk_actions; });

Якщо ви зберігаєте та оновлюєте екран редагування дописів, ви повинні побачити свій варіант у спадному списку.

Підручник: як додати спеціальну групову дію в адміністратор WordPress

На даний момент наша спеціальна масова дія повністю запущена. Це наступний крок.

Змусити нашу спеціальну групову дію щось зробити

Щоб щось активувати під час вибору нашої щойно доданої опції в dropwon, ми підключаємося до фільтра handle_bulk_actions-<screen>. Зверніться до огляду вище, щоб дізнатися про можливі значення екрана. Очевидно, що ваш ручний гачок має бути таким же екраном, як екран, до якого ви додали групову дію на першому кроці.

У цьому фільтрі є три можливі аргументи. Перший – той, який ви повертаєте – насправді є URL-адресою, на яку WordPress має переспрямувати після завершення масової дії. Другим аргументом є назва дії, яка була вибрана в розкривному списку. І по-третє, це масив усіх ідентифікаторів елементів, які були перевірені для масової дії. Це елементи, до яких ми повинні застосувати наші дії.

Давайте покроково розглянемо, що робить код вище. Спочатку нам потрібно перевірити, чи виконана групова дія справді була нашою спеціальною дією; change-to-published. А потім від нас залежить, що ми хочемо робити з усіма ідентифікаторами.

Наведений вище код перебирає всі ідентифікатори дописів і виконує wp_update_post()для кожного, щоб змінити статус допису на опублікований. (Якщо ви хочете, щоб це було ефективним, ви можете розглянути можливість оновлення лише тих, які справді ще не опубліковані).

Після того, як ми завершимо роботу з вибраними елементами, нам потрібно створити URL-адресу для перенаправлення після завершення WordPress. Ми додаємо спеціальний аргумент до наданої URL-адреси перенаправлення. Це необов’язково, але необхідно, якщо ми хочемо показати сповіщення адміністратора. Ми можемо додати все, що забажаєте. Але у наведеному вище прикладі ми просто додаємо новий аргумент запиту з add_query_arg()параметром «changed-to-published» до кількості ідентифікаторів дописів, які зазнали впливу. Це корисна інформація для повідомлення.

Показувати сповіщення після того, як наша спеціальна групова дія буде виконана

Якщо ви виконаєте нашу спеціальну групову дію зараз, ви помітите, що після того, як WordPress завершить групову дію, він перезавантажить сторінку з наступним URL-адресою: «wp-admin/edit.php?changed-to-published=2». «2» — це кількість дописів, до яких ми застосували нашу дію. Це дозволяє нам додати спеціальне сповіщення адміністратора, яке активується, якщо встановлено параметр «змінено на опубліковано».

Щоб показати сповіщення адміністратора, ми можемо використати дію admin_notices. Ми перевіряємо глобальну змінну PHP $_REQUEST, яка заповнюється значеннями, наданими формою, якщо " changed-to-published" існує. Якщо так, це означає, що щойно було виконано нашу спеціальну групову дію. Потім ми відобразимо деякий текст, включаючи кількість застосованих публікацій.

І це все!

Підручник: як додати спеціальну групову дію в адміністратор WordPress

Інші способи використання спеціальної масової дії

Майте на увазі, що в handle_bulk_actions-<screen>хуку ви можете робити з вибраними елементами все, що завгодно. Ви можете оновити спеціальну мета публікації, змінити ролі користувачів, надіслати електронний лист або опублікувати HTTP-запит до сторонньої програми.

Наприклад; якщо ви бажаєте масову дію для оновлення спеціальної мета публікації, яка інформує про те, чи перевірені публікації, за допомогою спеціальної групової дії з ключем " mark-as-verified":

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);

Поєднайте наведене вище зі спеціальним стовпцем, який показує значення «підтверджено» у списках публікацій, як ми зробили в цій публікації, і це стане особливо корисним.

Підручник: як додати спеціальну групову дію в адміністратор WordPress

Джерело запису: awhitepixel.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі