✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Samouczek: Jak dodać niestandardową akcję zbiorczą w WordPress Admin

11

Nad większością tabel elementów w administratorze WordPressa (np. postów, stron, komentarzy, wtyczek i użytkowników) znajdziesz funkcjonalność WordPressa dla działań zbiorczych. Akcje zbiorcze pozwalają na zaznaczenie wielu elementów, wybranie akcji i wykonanie tej akcji dla wszystkich elementów jednocześnie. W tym poście przyjrzymy się, jak dodać własne niestandardowe akcje zbiorcze do administratora WordPress.

Dodanie niestandardowej akcji zbiorczej stało się znacznie łatwiejsze w ostatnich wersjach WordPressa (od wersji 4.7). Istnieje filtr dla opcji dostępnych w menu rozwijanym; inny filtr określający, co powinien zrobić, gdy wybrana jest twoja opcja, i kolejny haczyk do opcjonalnego wyświetlania powiadomienia administratora. Przyjrzyjmy się każdemu z nich.

Dodawanie niestandardowej akcji zbiorczej w menu rozwijanym

Zacznijmy od dodania naszego niestandardowego wyboru zbiorczego do listy rozwijanej akcji zbiorczej. W tym celu używamy filtra bulk_actions_<screen>, w którym zastępujesz dowolny ekran administratora, do którego chcesz dodać swoją opcję. Oto pełny przegląd możliwych opcji ekranu:

  • bulk_actions-edit-post: Ekran edycji typu posta ‘post’
  • bulk_actions-edit-page: Ekran edycji typu posta ‘strona’
  • bulk_actions-edit-<post-type-name>: Niestandardowy ekran edycji typu postu
  • bulk_actions-edit-<custom-taxonomy>: Ekran edycji niestandardowej taksonomii
  • bulk_actions-edit-comments: Ekran listy komentarzy
  • bulk_actions-plugins: Ekran listy wtyczek
  • bulk_actions-users: Ekran listy użytkowników
  • bulk_actions-upload: Lista biblioteki multimediów (działa tylko w widoku listy, nie w widoku siatki)

Filtr jest stosowany do tablicy z parami klucz-wartość; gdzie klucze są unikalnym kluczem do działań, a wartości są etykietami, które pojawiają się w menu.

Spójrzmy na przykład. Chcę utworzyć akcję zbiorczą do ustawiania postów do opublikowania.

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

Jeśli zapiszesz i odświeżysz ekran edycji postów, powinieneś zobaczyć swoją opcję w menu rozwijanym.

Samouczek: Jak dodać niestandardową akcję zbiorczą w WordPress Admin

W tej chwili nasza niestandardowa akcja zbiorcza robi absolutnie zip. To kolejny krok.

Sprawianie, że nasze niestandardowe działanie zbiorcze coś robi

Aby coś wywołać, wybierając naszą nowo dodaną opcję w dropwonie, podpinamy się pod filtr handle_bulk_actions-<screen>. Zapoznaj się z powyższym przeglądem, aby poznać możliwe wartości ekranu. Oczywiście hak uchwytu powinien być tym samym ekranem, co ekran, na którym dodano akcję zbiorczą w pierwszym kroku.

W tym filtrze masz trzy możliwe argumenty. Pierwszy – ten, który zwracasz – jest w rzeczywistości adresem URL, do którego WordPress powinien przekierować po zakończeniu działania zbiorczego. Drugi argument to nazwa akcji, która została wybrana z listy rozwijanej. Trzecia to tablica wszystkich identyfikatorów elementów, które zostały sprawdzone pod kątem działania zbiorczego. To są elementy, na które musimy zastosować nasze działanie.

Przyjrzyjmy się krok po kroku, co robi powyższy kod. Najpierw musimy sprawdzić, czy wykonana akcja zbiorcza była rzeczywiście naszą niestandardową akcją; change-to-published. A potem to od nas zależy, czy zrobimy, co zechcemy, ze wszystkimi identyfikatorami.

Powyższy kod zapętla się przez wszystkie identyfikatory postów i wykonuje wp_update_post()na każdym z nich, aby zmienić status posta na opublikowany. (Jeśli chcesz, aby było to wydajne, możesz rozważyć aktualizację tylko tych, które rzeczywiście nie zostały jeszcze opublikowane).

Po wykonaniu naszej akcji na wybranych elementach, musimy zbudować adres URL, na który zostanie przekierowany po zakończeniu działania WordPressa. Do podanego adresu URL przekierowania dodajemy niestandardowy argument. Jest to opcjonalne, ale konieczne, jeśli chcemy wyświetlić powiadomienie administratora. Możemy dodać co tylko zechcesz. Ale w powyższym przykładzie po prostu dodajemy nowy argument zapytania z add_query_arg()ustawieniem „ changed-to-published" do liczby identyfikatorów postów, których dotyczy problem. Jest to przydatna informacja do zawiadomienia.

Pokaż powiadomienie po wykonaniu niestandardowego działania zbiorczego

Jeśli wykonasz teraz naszą niestandardową akcję zbiorczą, zauważysz, że po zakończeniu akcji zbiorczej WordPress ponownie załaduje stronę z następującym adresem URL: „wp-admin/edit.php?changed-to-published=2″. „2″ to liczba postów, w których zastosowaliśmy nasze działanie. To pozwala nam dodać niestandardowe powiadomienie administratora, które jest wyzwalane, jeśli ustawiono „zmieniono na opublikowane”.

W celu wyświetlenia powiadomień administratora możemy użyć akcji admin_notices. Sprawdzamy zmienną globalną PHP $_REQUEST, która jest wypełniana wartościami przesłanymi z formularza, jeśli changed-to-publishedistnieje ‘ ‘. Jeśli tak, oznacza to, że właśnie wykonano nasze niestandardowe działanie zbiorcze. Wyświetlimy wtedy tekst zawierający liczbę zastosowanych postów.

I to wszystko!

Samouczek: Jak dodać niestandardową akcję zbiorczą w WordPress Admin

Inne zastosowania niestandardowej akcji zbiorczej

Pamiętaj, że w handle_bulk_actions-<screen>haczyku możesz zrobić w zasadzie wszystko, co chcesz na wybranych elementach. Możesz zaktualizować niestandardową meta postu, zmienić role użytkowników, wysłać wiadomość e-mail lub opublikować żądanie HTTP do aplikacji innej firmy.

Na przykład; jeśli chcesz, aby akcja zbiorcza aktualizowała niestandardową meta postu, która informuje, czy posty są weryfikowane, czy nie, użyj niestandardowej akcji zbiorczej z kluczem „ 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);

Połącz powyższe z niestandardową kolumną, która pokazuje wartość „zweryfikowany” na listach postów – tak jak zrobiliśmy to w tym poście, a staje się to bardzo przydatne.

Samouczek: Jak dodać niestandardową akcję zbiorczą w WordPress Admin

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów