WP-CLI v2 – Zarządzanie WordPress z terminala

przez większość swojego życia, WordPress został zbudowany przy użyciu prostej podstawy kodu z kreską obiektowego PHP jest najbardziej abstrakcyjnym systemem. W ciągu ostatnich kilku lat zmienia się to jednak na lepsze. Od testów jednostkowych po wstępne przetwarzanie CSS i narzędzia wiersza poleceń, pojawia się coraz więcej przyjaznych dla programistów zasobów. W tym artykule przyjrzymy się jednemu z moich ulubionych: WP-CLI.

czym jest WP-CLI?

WP-CLI jest narzędziem wiersza poleceń dla programistów do zarządzania typowymi zadaniami (i nie tak powszechne) instalacji WordPress. Może dodawać / usuwać użytkowników, posty, kategorie, wstawiać dane testowe, wyszukiwać i zastępować w bazie danych, resetować hasła, pomagać rozwiązywać problemy z wydajnością i wiele więcej!

wsparcie

WP-CLI jest projektem open source od ponad dekady, utrzymywanym głównie przez Daniela Bachhubera od 2003 roku. Głównym celem WP-CLI jest przyspieszenie procesów pracy programisty WordPress.

z biegiem lat projekt stał się o wiele większy! Teraz staje się nawet wymogiem dla innych projektów open source, takich jak Trellis i Bedrock. Od stycznia 2017 r. WP-CLI oficjalnie przeniósł się do WordPress.org obecnie jest również współprowadzony przez Alaina Schlessera.

WP-CLI v2 został wydany 8 sierpnia 2018 r., więc przyjrzymy się również niektórym zmianom i nowym funkcjom. Jeśli jesteś klientem Kinsta, WP-CLI v2.0.1 jest domyślnie instalowany na wszystkich naszych serwerach, wystarczy SSH na serwerze, aby rozpocząć. Dostęp SSH jest zawarty we wszystkich naszych planach hostingowych (nie można połączyć się przez SSH? Fix the SSH” Connection Refused ” error).

  • uzyskiwanie WP-CLI
  • podstawy WP-CLI
  • ogólnie polecenia WP-CLI
  • przydatne przykłady
  • zdalne używanie WP-CLI
  • używanie skryptów Bash

uzyskanie WP-CLI

minimalne wymagania PHP na WP-CLI v2.0.0 zostały podniesione do PHP 5.4. Chociaż jest to dobry krok naprzód, zalecamy przynajmniej uruchomienie obsługiwanej wersji PHP, co oznacza 5.6 lub wyższą. PHP 7.2 jest domyślne we wszystkich instalacjach Kinsta, zarówno ze względów bezpieczeństwa, jak i wydajności. Mamy również PHP 7.3 i 7.4 dostępne.

aby rozpocząć, musisz zainstalować WP-CLI – bardzo prosty proces. Kroki dla Linuksa i OSX są następujące, wydaj te trzy polecenia jeden po drugim:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharchmod +x wp-cli.pharsudo mv wp-cli.phar /usr/local/bin/wp

jeśli coś pójdzie nie tak lub jesteś w systemie Windows, zapoznaj się z podstawowymi instrukcjami lub alternatywnymi metodami instalacji.

po zakończeniu powinieneś być w stanie wydać polecenie wp --info i uzyskać znaczącą odpowiedź.

Proces jest taki sam, jeśli chcesz zainstalować WP-CLI na swoim serwerze. Pamiętaj, że dla klientów Kinsta WP-CLI jest już zainstalowany. Nie wiesz, którą wersję aktualnie używasz? Zawsze możesz wydać polecenie wp cli version, aby się dowiedzieć.

podstawy WP-CLI

posiadanie dostępu do WordPress z linii poleceń jest samo w sobie potężne, ale może dać ci jeszcze większą kontrolę i wzrost prędkości podczas korzystania ze skryptów bash.

skrypty Bash pozwalają na uruchamianie sekwencji poleceń za pomocą jednego polecenia. Możesz wpisać bash install-and-setup.sh i uzyskać następujący wynik:

  • Pobierz WordPress
  • Utwórz i zapełnij wp-config.php
  • Utwórz bazę danych
  • zainstaluj WordPress
  • Zainstaluj i aktywuj wszystkie potrzebne wtyczki
  • Zainstaluj i Aktywuj motyw
  • Pobierz i dodaj zawartość testu

będą to kroki, które chciałbym podjąć, aby stworzyć nowe środowisko testowe dla projektu. Normalnie zajęłoby mi to co najmniej 5-10 minut, zwłaszcza jeśli jest kilka wtyczek zaangażowanych. Wydanie jednej komendy jest oczywiście dużo szybsze.

polecenia WP-CLI ogólnie

jeśli jesteś przyzwyczajony do pracy w terminalu, nie ma nic specjalnego w WP-CLI dla Ciebie. Polecenia zawsze zaczynają się od wp, po których następuje polecenie i polecenie podrzędne, po których następują wymagane i opcjonalne parametry, coś w tym stylu:

wp command subcommand requiredparam --optionalparam --optionalparam2=value

zainstalujmy motyw, aby zobaczyć, jak to działa z prawdziwym poleceniem:

wp theme install twentyseventeen --activate

spowoduje to zainstalowanie i aktywację motywu Twenty Seventeen w Twojej instalacji WordPress.

zauważ, że WP-CLI będzie działać z instalacją WordPress, którą aktualnie znajdujesz się w terminalu. Jeśli przełączysz katalogi, aby przejść do innej instalacji WordPress, będzie działać z tą.

przydatne przykłady

to było WP-CLI w skrócie! Chociaż istnieje kilka zaawansowanych rzeczy, które możemy zrobić za chwilę, już wiesz wystarczająco dużo, aby zacząć i robić, co trzeba. Polecam rzucić okiem na listę poleceń, wypróbować niektóre z nich. Przyjrzymy się tutaj przydatnym rzeczom, a następnie przejdziemy do korzystania z WP-CLI przez SSH i używania skryptów bash.

instalacja WordPressa

często używam WP-CLI do konfigurowania środowisk testowych, których pierwszym krokiem jest instalacja waniliowa. Oto lista komend, które uruchamiam:

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

zauważ jakie to fajne! Najnowsza wersja WordPressa jest pobierana za pomocą pierwszego polecenia. Drugie polecenie ustawia plik konfiguracyjny z dostępem do bazy danych i dodatkowym PHP na końcu. Dodatkowe stałe zapewniają, że mamy włączone opcje debugowania do testowania. Mamy szczegółowy przewodnik tutaj, jeśli chcesz dowiedzieć się więcej o debugowaniu WordPress.

trzecie polecenie tworzy bazę danych (WP-CLI wykorzystuje informacje o dostępie do bazy danych z pliku konfiguracyjnego) i na koniec instalujemy WordPress przy użyciu kilku parametrów.

ponownie zainstaluj Rdzeń WordPress

Możesz również ponownie zainstalować rdzeń WordPress za pomocą WP-CLI. Poniższe polecenie pobierze rdzeń WordPress bez domyślnych motywów i wtyczek.

wp core download --skip-content --force

Zmień adres URL WordPressa

istnieje wiele powodów, dla których możesz potrzebować lub chcieć zmienić adres URL WordPressa. Być może zmieniasz domeny, przenosisz się do subdomeny, aktualizujesz z www na inne niż www, przenosisz pliki, a nawet migrujesz z HTTP do HTTPS. Niezależnie od przypadku, możesz łatwo użyć polecenia wp option update. Oto przykład poniżej:

wp option update home 'http://example.com'wp option update siteurl 'http://example.com'

lista aktualnych wtyczek ze szczegółami

aby uzyskać listę aktualnych wtyczek zainstalowanych na stronie, wystarczy użyć następującego polecenia. W tym przykładzie widać, że mamy zainstalowany schemat i wtyczkę Yoast SEO. Zwróci również status (Aktywny/dezaktywowany), jeśli dostępna jest aktualizacja i bieżąca wersja.

wp plugin list
lista wtyczek WP-CLI

lista wtyczek WP-CLI

instalacja wielu wtyczek

aby zainstalować wiele wtyczek, możesz po prostu ustawić parametry. Oto przykład, który pobiera i aktywuje wtyczki 3:

wp plugin install advanced-custom-fields jetpack ninja-forms --activate

zauważ, że nazwy wtyczek pochodzą od ich nazwy w repozytorium. Najprostszym sposobem, aby to zrozumieć, jest odwiedzenie ich strony i sprawdzenie adresu URL lub użycie wp plugin search searchterm, która da ci listę w terminalu.

URL repozytorium wtyczek WordPress

URL repozytorium wtyczek WordPress

w razie potrzeby możesz również zainstalować starsze wersje wtyczek WordPress z atrybutem --version.

wp plugin install wordpress-seo --version=4.8 --activate

jeszcze fajniej, możesz instalować wtyczki ze zdalnych plików, a nie tylko z repozytorium, co jest przydatne, jeśli rozwijasz wtyczkę lub używasz wtyczki premium. Poniższe polecenie instaluje dwie wtyczki z repozytorium i jedną z serwera Amazon S3.

wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate

Dezaktywuj wiele wtyczek

aby dezaktywować jedną wtyczkę, możesz uruchomić następujące polecenie.

wp plugin deactivate wordpress-seo

aby dezaktywować wszystkie wtyczki jednocześnie, uruchom następujące polecenie.

wp plugin deactivate --all
WP-CLI Dezaktywuj wszystkie wtyczki

WP-CLI Dezaktywuj wszystkie wtyczki

powyższe polecenie może być przydatne, jeśli rozwiązujesz problemy ze zgodnością i po prostu musisz dezaktywować wszystkie wtyczki za jednym zamachem. Następnie możesz wrócić i włączyć je jeden po drugim, testując w miarę upływu czasu.

Aktualizuj wtyczki

możesz również ręcznie aktualizować wtyczki WordPress. Przykład poniżej:

wp plugin update wordpress-seo
wp-CLI ręcznie Aktualizuj wtyczkę WordPress

WP-CLI ręcznie Aktualizuj wtyczkę WordPress

Szukaj w bazie danych i zastąp

jednym z głównych powodów, dla których trudno jest przenieść witrynę po prostu kopiuj-wklej bazę danych, jest to, że baza danych zawiera szeregowe tablice. Jeśli chcesz zastąpić wszystkie instancje http://testsite.com http://livewebsite.com, Twoje seryjne tablice nie będą miały sensu, ponieważ liczba łańcuchów znaków nie będzie się zgadzać.

Zapisz się do newslettera

zwiększyliśmy nasz ruch 1,187% z WordPress. Pokażemy Ci jak.

Dołącz do 20,000 + innych, którzy otrzymują nasz cotygodniowy biuletyn z poufnymi wskazówkami WordPress!

Subskrybuj teraz

polecenie search-replace najpierw usuwa tablice, następnie wykonuje wyszukiwanie i zamianę, a następnie ponownie serializuje tablice. Możesz to zrobić za pomocą prostego polecenia:

wp search-replace oldstring newstring

dodatkowe parametry pozwalają na wiele więcej, w tym podgląd, który zostanie zastąpiony przez użycie --dry-run.

Import i eksport

istnieją dwa sposoby eksportowania treści za pomocą WP-CLI. Możesz utworzyć plik XML, tak jak robi to narzędzie eksportu WordPress, lub możesz eksportować/importować surową bazę danych. Uważam, że później jest o wiele bardziej przydatny w mojej codziennej rutynie, przydaje się podczas synchronizacji witryn.

wp db export to wszystko, co musisz zrobić, aby utworzyć plik SQL, a wp db import file.sql to wszystko, czego potrzebujesz, aby go zaimportować. Działa jak urok, po prostu uważaj, aby nie nadpisać niczego, czego potrzebujesz, importowanie w zasadzie zrzuci istniejącą bazę danych i użyje dostarczonego pliku SQL.

Zarządzaj rolami i możliwościami

WP-CLI może łatwo zarządzać rolami za pomocą polecenia wp role. Jest to całkiem fajne, jeśli chcesz przetestować, jak twoja wtyczka działa z rolami niestandardowymi, ale w rzeczywistości nie tworzysz ról w swojej wtyczce.

wp role create organizer Organizerwp cap list 'editor' | xargs wp cap add 'organizer'wp cap add 'organizer' 'manage-events'

powyższe polecenia stworzą nową rolę (Organizer), dodadzą do niej wszystkie możliwości z roli edytora, a następnie dodadzą nową funkcję: manage-events.

Generuj dane testowe

uwielbiam wszelkiego rodzaju fałszywe funkcje-takie, które dodają fałszywą treść do twojej witryny, której możesz użyć do testów. WP-CLI ma kilka z nich wbudowanych, oto kilka funkcji, które wygenerują użytkowników, warunki i posty.

wp user generate --count=5 --role=editorwp user generate --count=10 --role=authorwp term generate --count=12wp post generate --count=50

Zarządzaj zdarzeniami WP-cron

możesz zarządzać zdarzeniami WP-cron i lub zadaniem WordPress Cron w WP-CLI. Na przykład poniższe polecenie wyświetli bieżącą listę zdarzeń cron.

wp cron event list
lista zdarzeń wp-cron

lista zdarzeń wp-cron

Usuń przejścia

możesz nawet usunąć i wyczyścić jeden lub wszystkie przejścia za pomocą następującego polecenia.

wp transient delete --all

jeśli używasz multisite, będziesz potrzebował trochę bardziej skomplikowanego polecenia. Domyślnie polecenie sprawdza tylko tabelę wp_options. Nie sprawdza wp_1_options, wp_2_options itp.

zmagasz się z przestojami i problemami z WordPressem? Kinsta To rozwiązanie hostingowe zaprojektowane, aby zaoszczędzić czas! Sprawdź nasze funkcje

wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all

Wyczyść tabelę wp_options

tabela wp_options może być częstym winowajcą powolnych czasów zapytań w Twojej witrynie ze względu na automatycznie ładowane dane, które pozostają z wtyczek i motywów innych firm. Sprawdź ten świetny artykuł z WP Bullet na temat korzystania z WP-CLI do czyszczenia tabeli wp_options.

Usuń wersje WordPress

w dużych witrynach wersje WordPress mogą bardzo szybko dodawać się do tysięcy wierszy w bazie danych, które nie są potrzebne. Możesz usunąć wersje postów za pomocą WP-CLI. Oto przykład polecenia:

$ wp post delete $(wp post list --post_type='revision' --format=ids)
wp-CLI Usuń wersje wordpress

WP-CLI Usuń wersje WordPress

Kontroluj Tryb konserwacji

od WP-CLI v2.2.0 Możesz teraz kontrolować tryb konserwacji w swojej witrynie WordPress. Przykład:

wp maintenance-mode activatewp maintenance-mode deactivatewp maintenance-mode status

indeksowanie danych za pomocą Elasticsearch

Elasticsearch jest otwartoźródłową wyszukiwarką pełnotekstową. Służy do indeksowania danych i niezwykle szybkiego wyszukiwania tych danych. Oferujemy to jako dodatek dla klientów Kinsta. Możesz użyć poleceń ElasticPress WP-CLI do wykonywania indeksowania przez SSH. Przykład:

wp elasticpress index

praca z wielojęzycznymi witrynami

WP-CLI v2. 0. 0 zawiera nową rodzinę poleceń wp i18n dla tych z was pracujących z wielojęzycznymi witrynami. Na przykład możesz utworzyć plik POT dla wtyczki lub motywu WordPress.

wp i18n make-pot <source> ] 

patrz dokumentacja i18n-Command.

używasz WP-CLI z WooCommerce

pracujesz z witrynami eCommerce? 🛒 Zalecamy sprawdzenie niesamowitego przewodnika rozwoju WooCommerce WP-Cli robot Ninja, aby uzyskać szybkie i łatwe polecenia, których możesz użyć. Generowanie listy klientów, zamówień, a nawet tworzenie produktów masowych jest możliwe dzięki WP-CLI.

zdalne Korzystanie z WP-CLI

jedną z najlepszych rzeczy, które możesz zrobić za pomocą WP-CLI, jest zarządzanie zdalnymi instalacjami WordPress. To naprawdę spełnienie marzeń menedżera strony.

aby bezproblemowo uruchamiać polecenia WP-CLI na zdalnym serwerze przez SSH, wcześniej potrzebne było polecenie wp-CLI – SSH addon. Ale od wersji 0.24.0 jest to teraz część WP-CLI! Important

ważne: potrzebujesz WP-CLI zainstalowanego zarówno na komputerze, z którego uruchamiasz polecenie, jak i na serwerze.

Konfigurowanie zdalnych serwerów

możesz skonfigurować swoje serwery globalnie lub lokalnie. Aby skonfigurować je globalnie, użyj pliku config.yml. Możesz również użyć plików wp-cli.yml lub wp-cli.local.yml w bieżącym katalogu roboczym.

konfiguracja serwerów działa mniej więcej tak, wklej to do jednego z wymienionych plików:

ssh: staging: cmd: ssh %pseudotty% %cmd% url: http://myseite.com path: /www/path/to/site/root

po tym wszystkim możesz wpisać następujące polecenie, aby zaktualizować WordPress w swojej zdalnej witrynie:

wp ssh core update --host=staging

jeśli jesteś właścicielem lub zarządzasz wieloma witrynami, myślę, że możesz zobaczyć, że jest to niesamowite! Skrypt poprosi o hasło, ale jeśli używasz kluczy RSA do logowania, możesz również z tego zrezygnować. Spójrz na ten artykuł, aby to skonfigurować.

używanie skryptów Bash

skrypty Bash oszczędzają jeszcze więcej czasu dzięki automatyzacji zadań. Pamiętasz, jak musieliśmy wpisać wiele poleceń, aby zainstalować WordPress? Możesz to zrobić za pomocą jednego skryptu bash. Wewnątrz katalogu Utwórz plik install.sh. Wklej ten sam kod, który mieliśmy wcześniej w środku i zapisz go.

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

wszystko, co musisz teraz zrobić, to wpisać bash install.sh i wszystko zostanie zrobione za ciebie, bez interwencji użytkownika. Jeśli zarządzasz wieloma witrynami, możesz skonfigurować wszystkie środowiska i utworzyć skrypt bash, taki jak ten:

wp ssh core update --host=clientAwp ssh core update --host=clientBwp ssh core update --host=clientCwp ssh core update --host=clientD

kiedy pojawi się nowa wersja WordPress, może to zaoszczędzić dużo czasu! Ponieważ możesz zrobić wszystko, co chcesz z WP-CLI, możesz nawet regularnie aktualizować motywy i wtyczki na wielu stronach klientów jednocześnie.

podsumowanie

WP-CLI naprawdę jest spełnieniem marzeń programisty i menedżera strony. Jako programiści możemy tworzyć witryny testowe w mgnieniu oka, dodawać treści testowe i wykonywać wszelkiego rodzaju magię importu/eksportu. Menedżerowie witryn mogą obsługiwać aktualizacje witryny i inne zadania dla wielu witryn za pomocą pojedynczych poleceń. Upewnij się, aby sprawdzić WP-CLI v2 release notes!

Jeśli jeszcze nie wypróbowałeś WP-CLI, zachęcam do spróbowania. Istnieje również kilka poleceń społeczności, takich jak WP-CLI-SSH, które dodają jeszcze więcej świetnych funkcji! Jeśli napotkasz problemy, zapoznaj się z dokumentacją WP-CLI common issues.

nie zapominaj, że architektura Google oparta na chmurze Kinsta obsługuje WP-CLI po wyjęciu z pudełka. Jeśli chcesz wypróbować najnowocześniejszą architekturę hostingu WordPress i mieć dostęp do świetnych narzędzi, takich jak WP-CLI, wypróbuj nasz zarządzany hosting WordPress.

Jeśli podobał Ci się ten artykuł, pokochasz platformę hostingową Kinsta WordPress. Turbodoładuj swoją stronę i uzyskaj wsparcie 24/7 od naszego doświadczonego zespołu WordPress. Nasza infrastruktura Google Cloud koncentruje się na automatycznym skalowaniu, wydajności i bezpieczeństwie. Pozwól nam pokazać różnicę Kinsta! Sprawdź nasze plany



+