Często w programowaniu dla WordPressa spotykamy się z warunkami, które określają, czy dany kod powinien zostać wykonany czy też nie. Jednym z popularnych zapisów jest if (is_admin() && !defined('DOING_AJAX')) return;
. Dziś przyjrzymy się bliżej temu warunkowi i wyjaśnimy, jak działa.
Warunek ten składa się z dwóch części: is_admin()
oraz !defined('DOING_AJAX')
. Sprawdźmy, co oznacza każda z tych części.
is_admin()
– Ten fragment kodu sprawdza, czy aktualnie przeglądana strona jest stroną panelu administracyjnego WordPressa. Gdy ta funkcja zwraca wartośćtrue
, oznacza to, że znajdujemy się na stronie administracyjnej, natomiast gdy zwracafalse
, jesteśmy na stronie witryny (front-end).!defined('DOING_AJAX')
– Jest to warunek, który sprawdza, czy stałaDOING_AJAX
nie została zdefiniowana. W przypadku WordPressa,DOING_AJAX
jest stałą używaną do określenia, czy bieżące żądanie jest wykonywane za pośrednictwem technologii AJAX. Gdy ta stała nie jest zdefiniowana (czyli warunek zwracatrue
), oznacza to, że nie mamy do czynienia z żądaniem AJAX.
W połączeniu, te dwa warunki is_admin()
i !defined('DOING_AJAX')
tworzą całość if (is_admin() && !defined('DOING_AJAX')) return;
. Jeśli oba warunki są spełnione, zostaje wykonana instrukcja return
, która kończy wykonywanie funkcji lub zaczepu, w którym ten warunek został umieszczony. Innymi słowy, żadna dalsza część kodu nie jest wykonywana.
Ten zapis jest użyteczny, gdy chcemy ograniczyć wykonanie pewnego kodu tylko do określonych warunków. Na przykład, jeśli mamy funkcję, która powinna być wywoływana tylko na stronach witryny (front-end) i nie w panelu administracyjnym lub w przypadku, gdy nie chcemy, aby kod był wykonywany podczas żądań AJAX.
Przykład użycia tego warunku możemy zobaczyć poniżej:
function moja_funkcja() { if (is_admin() && !defined('DOING_AJAX')) return; // Kod do wykonania tylko na stronie witryny (front-end) // lub kod, który nie powinien być wykonywany podczas żądań AJAX // ... }
W powyższym przykładzie funkcja moja_funkcja
zostanie odpalona tylko na stronie witryny (front-end), a kod wewnątrz niej nie będzie wykonywany, jeśli znajdujemy się w panelu administracyjnym lub jeśli żądanie jest wykonywane za pośrednictwem AJAX.
Teraz, gdy masz lepsze zrozumienie tego warunku, możesz go używać w swoich projektach WordPressa, aby dostosować wykonanie kodu do odpowiednich warunków. To przydatne narzędzie, które pozwala kontrolować, jakie działania są wykonywane w zależności od kontekstu, w którym znajduje się strona lub żądanie.