Wygląda na to, że wielu programistów wtyczek poświęca trochę czasu na dodanie haków filtru / akcji, aby umożliwić użytkownikom dostosowanie funkcjonalności swoich produktów. Co jest świetne, ale to, czego często nie robią, to lista haków i ile argumentów biorą.
Czy ktoś znalazł najlepszy zautomatyzowany sposób, aby wskazać katalog wtyczki (lub motywu) i zobaczyć listę wszystkich dostępnych haków?
Wydaje mi się, że niektóre wtyczki skanują w poszukiwaniu haków, ale o ile wiem, pokazują, które z nich są faktycznie wywoływane w celu renderowania danej strony. Które dostaję może być przydatne. Ale czasami, jeśli wiem, że wchodzę w interakcję z konkretną wtyczką, chcę poznać każde miejsce, w którym może mi pozwolić na działanie lub filtr.
Więc tak naprawdę szukam czegoś, co, biorąc pod uwagę katalog główny wtyczki, utworzy listę, w której każdy element zawiera:
- etykietka
- typ (akcja lub filtr)
- liczba argumentów
- gdzie nazywa się (przez
do_action()
lubapply_filter()
) w źródle
Skrypt byłby świetny, ponieważ prawdopodobnie mógłby ładnie zhifikować całość i pokazać mi ją w interfejsie administratora dla każdej wtyczki. Ale nawet skrypt wiersza polecenia, który wyświetla użyteczny plik statyczny, byłby świetny.
Odpowiedzi:
Nie ma skryptu ani wtyczki, o których wiem, aby robić to, co chcesz. Jak już wspomniałeś, istnieją skrypty ( nawet zmienne globalne ), których możesz użyć do drukowania filtrów i aktualnie używanych akcji.
Jeśli chodzi o uśpione filtry i akcje, napisałem dwie bardzo podstawowe funkcje ( z pewną pomocą tu i tam ), które znajdują wszystkie
apply_filters
ido_action
instancje w pliku, a następnie drukują goPODSTAWY
Będziemy używać
RecursiveDirectoryIterator
,RecursiveIteratorIterator
aRegexIterator
klasy PHP, aby uzyskać wszystkie pliki PHP w katalogu. Jako przykład użyłem na moim localhostE:\xammp\htdocs\wordpress\wp-includes
Następnie przejdziemy przez pliki i przeszukamy i zwrócimy (
preg_match_all
) wszystkie wystąpieniaapply_filters
ido_action
. Skonfigurowałem go, aby pasował do zagnieżdżonych instancji nawiasów, a także aby dopasować możliwe białe spacje międzyapply_filters
/do_action
a pierwszym nawiasiemPo prostu utworzymy tablicę ze wszystkimi filtrami i akcjami, a następnie przejdziemy przez tablicę i wyprowadzimy nazwę pliku oraz filtry i akcje. Pomiń pliki bez filtrów / akcji
WAŻNE NOTATKI
Te funkcje są bardzo drogie. Uruchom je tylko na lokalnej instalacji testowej.
Zmodyfikuj funkcje zgodnie z potrzebami. Możesz zdecydować się zapisać wynik do pliku, utworzyć specjalną stronę zaplecza, opcje są nieograniczone
OPCJA 1
Pierwszy opcje funkcja jest bardzo prosta, wrócimy zawartość pliku jako ciąg znaków z wykorzystaniem
file_get_contents
, wyszukaćapply_filters
/do_action
przypadkach i po prostu wyjście nazwy pliku i filtrowanie nazw / actionSkomentowałem kod dla łatwego śledzenia
Możesz użyć w follow na szablonie, frontendzie lub backendu
To zostanie wydrukowane
OPCJA 2
Ta opcja jest nieco droższa w uruchomieniu. Ta funkcja zwraca numer wiersza, w którym można znaleźć filtr / akcję.
Tutaj używamy
file
do rozbicia pliku na tablicę, a następnie szukamy i zwracamy filtr / akcję oraz numer liniiMożesz użyć w follow na szablonie, frontendzie lub backendu
To zostanie wydrukowane
EDYTOWAĆ
Jest to w zasadzie tyle, ile mogę, bez przekroczenia limitu czasu skryptów lub braku pamięci. Z kodem w opcji 2 jest tak proste, jak przejście do wspomnianego pliku i linii w kodzie źródłowym, a następnie uzyskanie wszystkich prawidłowych wartości parametrów filtru / akcji, a także, co ważne, uzyskanie funkcji i dalszego kontekstu, w którym używany jest filtr / akcja
źródło
Wygląda na to, że WP Parser robi to, czego szukasz. Służy do generowania oficjalnej referencji programisty . Zawiera parametry, tagi @since i odniesienia do źródła. Działa ze wszystkimi wtyczkami WordPress i można uzyskać do niego dostęp za pośrednictwem wiersza poleceń:
źródło
Szybcy i wściekli
*nix
Wiersz polecenia good ol ' jest zawsze przydatny:Wiele innych opcji za pośrednictwem
#man grep
.Następnie możemy nawet stworzyć prosty skrypt bash
wp-search.sh
:i uruchomić z.
Niezła wydajność
Możemy użyć
--color
atrybutu do pokolorowania wynikugrep
, ale należy pamiętać, że nie będzie on działałless
.Inną opcją byłoby wygenerowanie tabeli HTML dla wyników wyszukiwania.
Oto
awk
skonstruowany przeze mnie przykład, który wyświetla wyniki wyszukiwania w postaci tabeli HTML doresults.html
pliku:gdzie użyłem tej sztuczki, aby usunąć wszystkie wiodące białe pola, a tej do wydrukowania wszystkich pól oprócz pierwszego.
Używam
sed
tutaj tylko po to, by dodać dodatkową spację po drugim dwukropku (:
), na wypadek, gdyby nie było tam spacji.Scenariusz
Możemy dodać to do naszego
wp-search.sh
skryptu:gdzie musisz dostosować
/path/to/some/directory
i/path/to/results.html
do swoich potrzeb.Przykład - wyszukiwanie wtyczki
Jeśli wypróbujemy to na
wordpress-importer
wtyczce z:wtedy
results.html
plik będzie wyświetlany jako:Przykład - Przeszukiwanie rdzenia
Czas przetestowałem to pod kątem rdzenia:
i jest szybki!
Notatki
Aby uzyskać dodatkowy kontekst, możemy użyć
-C NUMBER
grep.Możemy zmodyfikować dane wyjściowe HTML na różne sposoby, ale mam nadzieję, że dostosujesz je do swoich potrzeb.
źródło