wp-cli zarządzanie Wordpres przez konsolę + skrypt bash

wp-cli zarządzanie Wordpres przez konsolę + skrypt bash

wp-cli zarządzanie Wordpres przez konsolę będzie przyjemniejsze i prostsze.

Plugin wp-cli – dzięki niemu będziemy sprawnie i szybko obsługiwali techniczną część WordPressa.

Poniżej też przedstawiam skrypt mojego autorstwa, do wykorzystania u siebie na serwerze w bashu. Jeśli nie wiesz czym jest bash to skrypt raczej Ci się nie przyda. Jednak jeśli znasz kogoś, kto może Ci zainstalować, go na serwerze to uwierz mi, ułatwi Ci to życie 🙂

Tak więc przechodzimy odrazu do sedna sprawy

Ja korzystam z hostingu Zenbox na którym wp-cli jest już zainstalowany.

Najpierw przejdźmy do naszego katalogu w którym znajduje się WordPress i jego pliki tj index.php czy wp-config.php.
Następnie wykonajmy polecenie:

[arche3@s13 ukulelewarszawa.pl]$ wp plugin list

 

Jeśli otrzymasz komunikat:

Error: This does not seem to be a WordPress installation.
Pass --path=`path/to/wordpress` or run `wp core download`.

to prawdopodobnie nie jesteś w prawidłowej ścieżce z WordPressem

Sprawdźmy zatem:

[arche3@s13 ukulelewarszawa.pl]$ pwd
/home/arche3/domains/ukulelewarszawa.pl
[arche3@s13 ukulelewarszawa.pl]$ ls -l
total 8
private_html -> ./public_html
public_20190606
public_ftp
public_html

 

Tak więc widać z powyższego zapisu, że nie jesteśmy w odpowiednim katalogu. Skoro jednak jesteśmy tutaj to zróbmy kopię zapasową plików WordPressa:

[arche3@s13 ukulelewarszawa.pl]$ cp -r public_html public_20190606

Następnie przechodzimy do prawidłowego katalogu:

[arche3@s13 ukulelewarszawa.pl]$ cd public_html/
[arche3@s13 public_html]$ pwd
/home/arche3/domains/ukulelewarszawa.pl/public_html

 

Super, teraz zrobimy listowanie wtyczek:

[arche3@s13 public_html]$ wp plugin list
+-------------------------------+----------+-----------+---------+
| name | status | update | version |
+-------------------------------+----------+-----------+---------+
| akismet | inactive | available | 4.1.1 |
| hello | inactive | available | 1.7 |
| limit-login-attempts-reloaded | active | available | 2.7.4 |
+-------------------------------+----------+-----------+---------+

 

oraz aktualizację WSZYSTKICH dostępnych, w moim wypadku, trzech wtyczek:

[arche3@s13 public_html]$ wp plugin update --all
Włączanie trybu konserwacji...
Pobieranie aktualizacji z https://downloads.wordpress.org/plugin/akismet.4.1.2.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji wtyczki...
Wtyczka została zaktualizowana.
Pobieranie aktualizacji z https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji wtyczki...
Wtyczka została zaktualizowana.
Pobieranie aktualizacji z https://downloads.wordpress.org/plugin/limit-login-attempts-reloaded.2.8.1.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji wtyczki...
Wtyczka została zaktualizowana.
Wyłączanie trybu konserwacji...
+-------------------------------+-------------+-------------+---------+
| name | old_version | new_version | status |
+-------------------------------+-------------+-------------+---------+
| akismet | 4.1.1 | 4.1.2 | Updated |
| hello | 1.7 | 1.7.2 | Updated |
| limit-login-attempts-reloaded | 2.7.4 | 2.8.1 | Updated |
+-------------------------------+-------------+-------------+---------+
Success: Updated 3 of 3 plugins.

Wylistujemy sobie wszystkie motywy:

[arche3@s13 public_html]$ wp theme list
+-----------------+----------+-----------+---------+
| name | status | update | version |
+-----------------+----------+-----------+---------+
| my-music-band | active | available | 2.0.2 |
| twentyfifteen | inactive | available | 2.4 |
| twentynineteen | inactive | available | 1.3 |
| twentyseventeen | inactive | available | 2.1 |
| twentysixteen | inactive | available | 1.9 |
+-----------------+----------+-----------+---------+

oraz zaktualizujemy wszystkie motywy

[arche3@s13 public_html]$ wp theme update --all
Włączanie trybu konserwacji...
Pobieranie aktualizacji z https://downloads.wordpress.org/theme/my-music-band.2.1.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji motywu...
Motyw został zaktualizowany.
Pobieranie aktualizacji z https://downloads.wordpress.org/theme/twentyfifteen.2.5.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji motywu...
Motyw został zaktualizowany.
Pobieranie aktualizacji z https://downloads.wordpress.org/theme/twentynineteen.1.4.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji motywu...
Motyw został zaktualizowany.
Pobieranie aktualizacji z https://downloads.wordpress.org/theme/twentyseventeen.2.2.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji motywu...
Motyw został zaktualizowany.
Pobieranie aktualizacji z https://downloads.wordpress.org/theme/twentysixteen.2.0.zip...
Rozpakowywanie aktualizacji...
Instalacja najnowszej wersji...
Usuwanie starej wersji motywu...
Motyw został zaktualizowany.
Wyłączanie trybu konserwacji...
+-----------------+-------------+-------------+---------+
| name | old_version | new_version | status |
+-----------------+-------------+-------------+---------+
| my-music-band | 2.0.2 | 2.1 | Updated |
| twentyfifteen | 2.4 | 2.5 | Updated |
| twentynineteen | 1.3 | 1.4 | Updated |
| twentyseventeen | 2.1 | 2.2 | Updated |
| twentysixteen | 1.9 | 2.0 | Updated |
+-----------------+-------------+-------------+---------+
Success: Updated 5 of 5 themes.

Teraz odinstaluję stare wersje twentyfifteen, twentynineteen, twentyseventeen, twentysixteen

Wcześniej jednak sprawdźmy jaka jest pojemność katalogu z motywami:

[arche3@s13 public_html]$ du -sh wp-content/themes/
8.2M wp-content/themes/

OK – 8,2MB. Może to nie jest dużo, ale po co trzymać stare motywy na dysku i w kopiach zapasowych?

 

[arche3@s13 public_html]$ wp theme uninstall twentyfifteen
Deleted 'twentyfifteen' theme.
Success: Deleted 1 of 1 themes.
[arche3@s13 public_html]$ wp theme uninstall twentynineteen twentyseventeen
Deleted 'twentynineteen' theme.
Deleted 'twentyseventeen' theme.
Success: Deleted 2 of 2 themes.
[arche3@s13 public_html]$ wp theme uninstall twentysixteen
Deleted 'twentysixteen' theme.
Success: Deleted 1 of 1 themes.
[arche3@s13 public_html]$ du -sh wp-content/themes/
3.5M wp-content/themes/

 

A teraz najważniejsze – aktualizacja WordPressa. Sprawdźmy najpierw, którą mamy wersję WordPressa:

[arche3@s13 public_html]$ wp core version
5.1.1

 

No to jazda! Jednak WCZEŚNIEJ ZRÓB KOPIĘ BAZY DANYCH I PLIKÓW WORDPRESSA:
Zrobiłeś? To jedziemy…

[arche3@s13 public_html]$ wp core update
Updating to version 5.2.1 (en_US)...
Pobieranie aktualizacji z https://downloads.wordpress.org/release/wordpress-5.2.1-no-content.zip...
Rozpakowywanie aktualizacji...
<p>Niektóre z używanych tłumaczeń wymagają aktualizacji. Teraz nastąpi ich aktualizacja. Prosimy o cierpliwość.</p>
<div class="update-messages lp-show-latest"><h2>Aktualizacja tłumaczeń &bdquo;WordPress (pl_PL)&rdquo;&#8230;</h2><p>Pobieranie tłumaczenia z <span class="code">https://downloads.wordpress.org/translation/core/5.2-beta/pl_PL.zip</span>&#8230;</p>
<p>Rozpakowywanie aktualizacji&#8230;</p>
<p>Instalacja najnowszej wersji&#8230;</p>
<p>Usuwanie starych wersji tłumaczeń&#8230;</p>
<p>Tłumaczenie zostało zaktualizowane.</p>
</div><script type="text/javascript">
(function( wp ) {
if ( wp && wp.updates && wp.updates.decrementCount )
wp.updates.decrementCount( "translation" );
}
})( window.wp );
</script>Warning: Checksums not available for WordPress 5.2.1/pl_PL. Please cleanup files manually.
Success: WordPress updated successfully.

 

Wykonaj sobie dwie operacje:

Są to bezpieczne operacje ponieważ listują tylko wtyczki i motywy. Wynik pójdzie na Twojego maila.
Listowanie wtyczek:

[arche3@s13 public_html]$ wp plugin list | mail -s "Lista wtyczek ukulelewarszawa" TWÓJEMAIL@gmail.com

 

Listowanie motywów:

[arche3@s13 public_html]$ wp theme list | mail -s "Lista motywow ukulelewarszawa" TWÓJEMAIL@gmail.com

 

 

 

Inne funkcje wp-cli

wp admin – Otwórz / wp-admin / w przeglądarce.

wp cache – Dodaje, usuwa, pobiera i opróżnia obiekt pamięci podręcznej obiektów WP.

wp cap – Dodaje, usuwa i wyświetla możliwości roli użytkownika.

wp cli – Przejrzyj aktualne informacje o WP-CLI, sprawdź aktualizacje lub zobacz zdefiniowane aliasy.

wp comment – Tworzy, aktualizuje, usuwa i moderuje komentarze.

wp config – Generuje i odczytuje plik wp-config.php.

wp core – Pobiera, instaluje, aktualizuje i zarządza instalacją WordPress.

wp cron – Testuje, uruchamia i usuwa zdarzenia WP-Cron; zarządza harmonogramami WP-Cron.

wp db – Wykonuje podstawowe operacje na bazie danych przy użyciu poświadczeń przechowywanych w wp-config.php.

wp dist-archive – Utwórz archiwum dystrybucji na podstawie pliku .distignore projektu.

wp embed – Sprawdza dostawców oEmbed, czyści pamięć podręczną osadzania i wiele więcej.

wp eval – Wykonuje dowolny kod PHP.

wp eval-file – Ładuje i wykonuje plik PHP.

wp export – Eksportuje zawartość WordPress do pliku WXR.

wp find – Znajdź instalacje WordPress na systemie plików.

wp help – Uzyskaj pomoc dotyczącą WP-CLI lub określonego polecenia.

wp i18n – Udostępnia narzędzia internacjonalizacji dla projektów WordPress.

wp import – Importuje zawartość z danego pliku WXR.

wp language – Instaluje, aktywuje i zarządza pakietami językowymi.

wp maintenance-mode – Aktywuje, dezaktywuje lub sprawdza stan trybu konserwacji witryny.

wp media – Importuje pliki jako załączniki, regeneruje miniatury lub wyświetla listę zarejestrowanych rozmiarów obrazów.

wp menu – Wyświetla, tworzy, przypisuje i usuwa menu nawigacji aktywnego motywu.

wp network – Wykonuj operacje w całej sieci.

wp option – Pobiera i ustawia opcje witryny, w tym wtyczki i ustawienia WordPress.

wp package – Wyświetla, instaluje i usuwa pakiety WP-CLI.

wp plugin – Zarządza wtyczkami, w tym instalacjami, aktywacjami i aktualizacjami.

wp post – Zarządza postami, treściami i meta.

wp post-type – Pobiera szczegóły dotyczące zarejestrowanych typów postów w witrynie.

wp profile wp rewrite – Wyświetla lub opróżnia reguły przepisywania witryny, aktualizuje strukturę permalinku.

wp role – Zarządza rolami użytkowników, w tym tworzeniem nowych ról i przywracaniem ustawień domyślnych.

wp scaffold – Generuje kod dla typów postów, taksonomii, wtyczek, motywów potomnych itp.

wp search-replace – Wyszukuje / zastępuje ciągi w bazie danych.

wp server – Uruchamia wbudowany serwer WWW PHP dla konkretnej instalacji WordPress.

wp shell – Otwiera interaktywną konsolę PHP do uruchamiania i testowania kodu PHP.

wp sidebar – Wyświetla listę zarejestrowanych pasków bocznych.

wp site – Tworzy, usuwa, opróżnia, moderuje i wyświetla jedną lub więcej witryn w instalacji na wielu serwerach.

wp super-admin – Wyświetla, dodaje lub usuwa użytkowników super adminów w instalacji na wielu serwerach.

wp taxonomy
Pobiera informacje o zarejestrowanych taksonomiach.

wp term – Zarządza terminami taksonomii i terminem meta za pomocą poleceń create, delete i list.

wp theme
Zarządza tematami, w tym instalacjami, aktywacjami i aktualizacjami.

wp transient
Dodaje, pobiera i usuwa wpisy w buforze przejściowym WordPress.

wp user
Zarządza użytkownikami wraz z ich rolami, możliwościami i meta.

wp widget
Zarządza widżetami, w tym dodawaniem i przenoszeniem ich w paskach bocznych.

Cały projekt znajduje się tutaj: https://wp-cli.org/

 

Skrypt bash WP-CLI:

#!/bin/bash

# Poniżej UZUPEŁNIJ SWOJE DANE:

# Podaj ścieżkę do katalogu, gdzie znajdują się pliki z WordPressem, takie jak wp-config.php czy index.php:
sciezka=`/home/arche3/domains/ukulelewarszawa.pl/public_html`

# Podaj swojego maila:
mail=`TWOJMAIL@gmail.com`

# Podaj nazwę swojego motywu:
motyw=`NazwaTwojegoMotywu`

# Wchodzimy do naszej ścieżki na serwerze, gdzie zainstalowany jest WordPress
cd $sciezka

# Najpierw sprawdzimy jaką mamy wersję WordPress:
wp core version

# Skrypt jest ustawiony żeby sprawdzał co 2 tygodnie i automatycznie instalował nową wersję:
wp core update

# Zajmujemy się wtyczkami - najpierw je wylistujmy:
wp plugin list

# Teraz zaktualizujmy wszystkie wtyczki:
wp plugin update --all

# A następnie zobaczmy status wtyczek: wersja, aktywne, nieaktywne
wp plugin status

# Podobnie jak z wtyczkami zróbmy to samo z motywami
# Poniższa komenda pokazuje nam listę motywów
wp theme list

# Wybierz jedną metodę - $motyw robi update tylko jednego motywu, który wskazałeś w zmiennich,
# a opcja --all wszystkich motywów
#wp theme update $motyw
#wp theme update --all

# Sprawdźmy także status naszych motywów - jeśli, któreś są standardowe, możemy je usunąć, po co mają zajmować miejsce?
wp theme status

Jeśli jesteś zainteresowana/zainteresowany inną wersją WP-CLI napisz poniżej komentarz, a napewno się odezwę 🙂