Redakcja WebInsider.pl zaprasza na WordCamp 2018 Poznań. Poznajmy się w Poznaniu!

Dziś chciałbym Wam przedstawić narzędzie do zarządzania stronami opartymi o system CMS WordPress za pomocą komend tekstowych – i choć może to wydawać się mniej wygodne niż klasyczne zarządzanie za pomocą panelu, to w wielu sytuacjach pozwala znacznie usprawnić pracę z tym CMSem…

WP-CLI: Interfejs wiersza poleceń do WordPressa

Wprawdzie korzyści z zastosowania WP-CLI wydają się tym większe, im więcej mamy stron na WordPressie pod swoim nadzorem, to nawet w przypadku tylko jednej strony warto rozważyć wdrożenie tego narzędzia – czy to do zautomatyzowania niektórych „standardowych czynności” np. za pomocą skryptów uruchamianych z CRONa, czy też do (awaryjnej) modyfikacji w bazie danych (WP-CLI współpracuje również z WordPress Multisite).

Za pomocą WP-CLI możemy tak naprawdę uruchomić kompletną, działającą stronę – w raz z zawartością, co pewnie zainteresuje różnej maści magików od zaplecza (SEO), bo dzięki WP-CLI i relatywnie prostemu skryptowi możemy stawiać kolejne gotowe strony w krótkim czasie, w sposób całkowicie automatyczny.

Sam z tego narzędzia wprawdzie korzystam głównie do późniejszego zarządzania stanami, to zdarza mi się czasem korzystać ze skryptu, który wykorzystując możliwości WP-CLI pozwala mi szybko przygotować szkielet strony (podstawowe ustawienia, wtyczki) pod kolejną stronę WWW.

Instalacja WP-CLI

Instalacja jest prosta (choć są też inne, alternatywne metody), i przedstawie ją na przykładzie serwera VPS (lub Raspberry Pi).

Zaczynamy od pobrania skryptu na nasz serwer:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Od razu też przeniesiemy pobrany skrypt do katalogu ze skryptami użytkownika, dzięki czemu będziemy mogli w prosty sposób go wywołać z dowolnej lokalizacji:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Od razu możemy też sprawdzić, czy wszystko działa:

[email protected]:~$ wp --info
PHP binary: /usr/bin/phpX
PHP version: X.X.XX-X+deb8u1
php.ini used: /etc/phpX/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir: /home/patryk/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.23.1

Instalacja WordPressa za pomocą WP-CLI

Kolejnym krokiem może być utworzenie nowej strony (jeśli chcecie zarządzać istniejącą stroną, to oczywiście ten krok należy pominąć), co – jeśli mamy już skonfigurowany webserwer, utworzoną bazę danych, oraz przygotowany katalog na pliki strony – sprowadza się do kilku prostych poleceń.

Podczas pracy z WP-CLI wszystkie polecenia (poza „info” przedstawionym powyżej) wykonujemy będąc w katalogu w którym chcemy zainstalować, lub w którym znajduje się już zainstalowany WordPress, którym chcemy zarządzać.

W innym przypadku każdorazowo należy do polecenia dodać parametr ze ścieżka do WordPressa, którym chcemy zarządzać:

--path=/var/www/webinsider/html/

Np.:

wp core version --path=/var/www/webinsider/html/

Przechodzimy do katalogu w którym chcemy zainstalować WordPressa i korzystamy z polecenia:

wp core download 

Choć przynajmniej część z Was raczej będzie zainteresowana WordPressem w wersji PL:

wp core download --locale=pl_PL

Można też wskazać ścieżkę, jeśli chcemy zainstalować WordPressa do innego katalogu niż ten, w którym się znajdujemy:

wp core download --locale=pl_PL --path=/var/www/jakiś/katalog/

Przykładowe pobieranie:

[email protected]:/var/www/webinsider/html$ wp core download --locale=pl_PL
Downloading WordPress 4.5.3 (pl_PL)...
md5 hash verified: f7ec1f9dd8fe670c698bc8389e83f11e
Success: WordPress downloaded.

Po instalacji szybka konfiguracja bazy danych:

wp core config --dbname=nazwa_bazy_danych --dbuser=użytkownik_bazy_danych --dbpass=hasło_do_bazy_danych

Opcjonalnie możecie też ustawić m.in. prefiks tabel a bazie danych, czy host na którym działa serwer MySQL:

wp core config --dbname=nazwa_bazy_danych --dbuser=użytkownik_bazy_danych --dbpass=hasło_do_bazy_danych --dbhost=localhost --dbprefix=wp_

W tym momencie możecie wejść na stronę, i za pomocą standardowego kreatora instalacji skonfigurować podstawowe informacje o stronie, ale możecie tez skorzystać z odpowiedniego polecenia:

wp core install --url=webinsider.pl --title="WebInsider.pl" --admin_user=patryk --admin_password=jakieś_hasło [email protected]

I to tyle, WordPress zainstalowany i skonfigurowany…

Praca z WP-CLI, czyli podstawowe polecenia

Ale możliwości WP-CLI na instalacji WordPressa się nie kończą – wręcz przeciwnie, one tu dopiero się zaczynają… I nawet nie zamierzam próbować przedstawić Wam wszystkich komend – te znajdziecie w dokumentacji, choć postaram się przedstawić Wam kilka, z których sam najczęściej korzystam (tak by zainteresować Was tematem).

Aktualizacja WP-CLI

Zaczynamy od polecenia może niezwiązanego bezpośrednio z pracą „na WordPressie”, ale nawet najlepsze narzędzia czasem trzeba aktualizować, dzięki czemu nie tylko otrzymujemy usprawnienia już istniejących funkcjonalności, ale i całkiem nowe:

wp cli update

Ew. jako root:

wp cli update --allow-root

Aktualizacja WordPressa

Aktualną wersję WordPressa sprawdzicie za pomocą polecenia:

wp core version

Aktualizację – jeśli potrzebna – przeprowadzamy za pomocą kolnych 2 poleceń (pliki, i ew. baza danych – czasem wymagane):

wp core update
wp core update-db

Praca z motywami

Za pomocą WP-CLI możemy też zarządzać motywami – od instalacji, przez aktywację, po odinstalowanie…

Lista motywów:

wp theme list

Wyszukiwanie motywów w repozytorium WordPress.org:

wp theme search SŁOWA KLUCZOWE

Instalacja motywu:

wp theme install NazwaMotywu

Aktywacja motywu:

wp theme activate NazwaMotywu

Odinstalowanie (usunięcie) motywu:

wp theme uninstall NazwaMotywu

Aktualizacja wybranego motywu:

wp theme update NazwaMotywu

Aktualizacja wszystkich motywów:

wp theme update --all

Do tego możemy sprawdzić status motywów (aktywne, nieaktywne, wersja):

wp theme status

Child Themes, czyli motywy potomne

Jak być może już niektórzy z Was wiedzą, osobiście preferuje pracę na tzw. motywach potomnych, dzięki czemu jakieś „niestandardowe modyfikacje” nie przepadają podczas aktualizacji bazowego motywu.

Za pomocą WP-CLI możemy też i proces tworzenia takiego motywu zautomatyzować – w tym celu możemy skorzystać z komendy scaffold:

wp scaffold MotywBazowy MotywPotomny --parent_theme=motywbazowy --theme_name="Motyw Potomny" --author="Patryk z WebInsider.pl" --activate

Praca z wtyczkami

Skoro możemy zarządzać motywami, to zapewne dla nikogo z Was nie będzie niespodzianka, że to samo możemy robić w przypadku wtyczek.

Lista wtyczek:

wp plugin list

Wyszukiwanie wtyczek w repozytorium WordPress.org:

wp plugin search "SŁOWA KLUCZOWE"

Instalacja wtyczki:

wp plugin install NazwaWtyczki

Aktywacja wtyczki:

wp plugin active NazwaWtyczki

De(z)aktywacja wtyczki:

wp plugin deactivate NazwaWtyczki

Odinstalowanie (usunięcie) wtyczki:

wp plugin uninstall NazwaWtyczki

Aktualizacja wybranej wtyczki:

wp plugin update NazwaWtyczki

Aktualizacja wszystkich motywów:

wp plugin update --all

Do tego możemy sprawdzić status wtyczek (aktywne, nieaktywne, wersja):

wp plugin status

Inne przydatne polecenia

O pracę z multimediami (plikami), czy tworzeniem postów nawet nie będę zahaczał – to temat rzeka, ale jedno polecenie chciałbym Wam przedstawić, bo jest proste, a może się przydać:

wp media regenerate

Lub w wersji z automatycznym potwierdzeniem:

wp media regenerate --yes

Jak zapewne się domyślacie, za pomocą tego polecenia odświeżycie (wygenerujecie ponownie) miniatury (mniejsze i większe) wgranych plików graficznych…

Praca z bazą danych

Za pomocą WP-CLI mamy również możliwość (m.in.) pracy z bazą danych – od importu i eksportu, po zmianę zawartości.

Eksport (kopia zapasowa) bazy danych do pliku:

wp db export /ścieżka/do/zapisania/pliku/nazwa_pliku.sql

import (przywracanie) bazy danych z pliku:

wp db import /ścieżka/do/pliku/nazwa_pliku.sql

Możemy też mienić adres strony w ustawieniach WordPressa:

wp option update home https://nowy.webinsider.pl
wp option update siteurl https://nowy.webinsider.pl

Choć zapewne wtedy nie obejdzie się również bez zmian w innych miejscach w bazie danych – coś podobnego, do tego co można wykonać opisywanym kilka dni temu skryptem:

wp search-replace 'stara zawartość' 'nowa zawartość'

Ew. możecie sprawdzić zmiany „na sucho”, czyli tylko za symulować działanie polecenia:

wp search-replace --dry-run 'stara zawartość' 'nowa zawartość'

Można też dokonać modyfikacji w konkretnej tabeli:

wp search-replace 'stara zawartość' 'nowa zawartość' tabela

Lub nawet bardziej precyzyjnie – konkretnej kolumnie, w konkretnej tabeli:

wp search-replace 'stara zawartość' 'nowa zawartość' tabela --include-columns=kolumna

Np.:

wp search-replace --dry-run 'stara wartość' 'nowa wartość' wp_posts --include-columns=post_content

WP-CLI z uprawnieniami innego użytkownika, np. roota

Jeśli z jakichś przyczyn zajdzie potrzeba wykonania komendy z uprawnieniami użytkownika „root”, to w przypadku WP-CLI nie wystarczy dodać „sudo” z przodu komendy. Więcej – polecenie nie wykona się z takimi uprawnieniami nawet jeśli będziecie zalogowani jako „root” do systemu.

Oczywiście jest to podyktowane względami bezpieczeństwa, i uwzględniono i taką sytuację. W takim przypadku musimy dodać do polecenia parametr:

--allow-root

Przykładowe polecenie:

sudo wp db export /ścieżka/do/zapisania/pliku/nazwa_pliku.sql --allow-root

Alternatywnie – podaje za dokumentacją – możecie wykonać polecenie w ramach konta innego użytkownika za pomocą takiego polecenia:

sudo -u NAZWA_UŻYTKOWNIKA -i -- wp KOMENDA

W każdym razie zachęcam do samodzielnego przetestowania WP-CLI, bo – mam nadzieję, że widać – warto…

Zgłoś błąd na stronie
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Monika ćwiczy przed kongresem ko..., ale dzięki motywowa Divi od Elegant Themes chyba nawet ona da radę...
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które - w miarę możliwości - spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. "linki partnerskie", co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte... :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Młody Szymon powiedział tacie o promocji dla czytelników WebInsider.pl i zaoszczędzili 80% na księgowości internetowej wFirma