WP

Învață WordPress: comenzi explicate cu exemple

66 de comenzi 11 categorii

WordPress este sistemul de administrare a conținutului (CMS) scris în PHP pe care rulează o mare parte din site-urile web, de la bloguri personale la magazine online. Pe lângă panoul de administrare, are o interfață completă pentru programatori: comanda wp (WP-CLI) în terminal și un set mare de funcții și hooks în cod.

Cu WP-CLI instalezi și actualizezi site-ul, pluginurile și temele, gestionezi utilizatori și articole sau muți baza de date între servere fără să deschizi browserul. Cu hooks (acțiuni și filtre) schimbi comportamentul WordPress din tema ta sau dintr-un plugin, fără să modifici fișierele nucleului.

Mai jos găsești comenzile WP-CLI, hook-urile și funcțiile cele mai folosite, grupate pe categorii: instalare și actualizare, pluginuri și teme, conținut, bază de date, acțiuni și filtre, interogări și bucla, securitate (escaping, nonce, permisiuni) și configurarea din wp-config.php. Exemplele sunt pentru WordPress 6.9 și mai nou (7.x) și WP-CLI 2.12.

CLI: instalare și actualizare 3 comenzi

CLI: pluginuri și teme 7 comenzi

CLI: utilizatori și conținut 5 comenzi

CLI: bază de date și întreținere 12 comenzi

Hooks: acțiuni și filtre 5 comenzi

Hooks folosite des 8 comenzi

Interogări și bucla 6 comenzi

Conținut și tipuri de date 6 comenzi

Opțiuni, cache și API 4 comenzi

Securitate 8 comenzi

Configurare și depanare 2 comenzi

Toate comenzile, hook-urile și funcțiile

Lista completă a comenzilor WP-CLI, a hook-urilor și a funcțiilor WordPress explicate în această secțiune, cu sintaxa lor uzuală. Fiecare are o pagină dedicată, cu explicații, parametri și exemple.

CLI: instalare și actualizare (3)

Funcție Ce face
wp core download Descarcă fișierele WordPress de pe wordpress.org în folderul curent sau în cel ales, verificate cu md5.
wp core download [--path=<path>] [--locale=<locale>] [--version=<version>] [--skip-content] [--force]
wp core install Creează tabelele WordPress și contul de administrator: „instalarea în 5 minute” făcută dintr-o singură comandă.
wp core install --url=<url> --title=<site-title> --admin_user=<username> --admin_email=<email> [--admin_password=<password>] [--locale=<locale>] [--skip-email]
wp core update Actualizează nucleul WordPress la ultima versiune sau la una anume; update-db actualizează apoi baza de date.
wp core update [<zip>] [--minor] [--version=<version>] [--force] [--locale=<locale>]

CLI: pluginuri și teme (7)

Funcție Ce face
wp plugin install Instalează unul sau mai multe pluginuri din directorul wordpress.org, dintr-o arhivă zip locală sau de la o adresă URL.
wp plugin install <plugin|zip|url>... [--version=<version>] [--force] [--activate] [--activate-network]
wp plugin activate Activează sau dezactivează pluginuri instalate, unul câte unul sau toate odată, fără panoul de administrare.
wp plugin activate [<plugin>...] [--all] [--exclude=<name>] [--network]
wp plugin list Afișează pluginurile instalate cu starea lor (activ sau inactiv), versiunea și actualizările disponibile.
wp plugin list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>] [--status=<status>]
wp plugin update Actualizează pluginurile la versiunea nouă de pe wordpress.org, pe rând sau toate odată, cu previzualizare –dry-run.
wp plugin update [<plugin>...] [--all] [--exclude=<name>] [--minor] [--patch] [--version=<version>] [--dry-run] [--format=<format>]
wp theme install Instalează o temă din directorul wordpress.org, dintr-un zip local sau de la o adresă URL, opțional și activată.
wp theme install <theme|zip|url>... [--version=<version>] [--force] [--activate]
wp theme activate Schimbă tema activă a site-ului cu o temă deja instalată, identificată prin slug.
wp theme activate <theme>
wp theme list Afișează temele instalate, cu stare, versiune și actualizări; wp theme update le actualizează.
wp theme list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>] [--status=<status>]

CLI: utilizatori și conținut (5)

Funcție Ce face
wp user create Creează un utilizator WordPress nou, cu rol, nume și parolă, direct din terminal.
wp user create <user-login> <user-email> [--role=<role>] [--user_pass=<password>] [--display_name=<name>] [--first_name=<first_name>] [--last_name=<last_name>] [--send-email] [--porcelain]
wp user list Afișează utilizatorii site-ului, cu ID, login, nume, e-mail, data înregistrării și rol, filtrabili după rol.
wp user list [--role=<role>] [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
wp post list Afișează articole, pagini sau alte tipuri de conținut, filtrate cu argumentele WP_Query, în tabel, CSV, JSON sau ID-uri.
wp post list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
wp post create Creează un articol, o pagină sau alt tip de conținut, cu titlu, conținut, stare și autor dați ca opțiuni.
wp post create [<file>] [--post_title=<post_title>] [--post_content=<post_content>] [--post_status=<post_status>] [--post_type=<post_type>] [--post_author=<post_author>] [--post_date=<post_date>] [--porcelain]
wp post update Modifică unul sau mai multe articole existente: titlu, stare, autor, conținut sau câmpuri personalizate.
wp post update <id>... [<file>] --<field>=<value> [--defer-term-counting]

CLI: bază de date și întreținere (12)

Funcție Ce face
wp option get / update Citește, modifică și listează opțiunile WordPress din tabelul wp_options direct din terminal.
wp option get <key> [--format=<format>]
wp search-replace Caută și înlocuiește un text în toată baza de date WordPress, inclusiv în datele PHP serializate.
wp search-replace <old> <new> [<table>...] [--dry-run] [--skip-columns=<columns>] [--all-tables] [--precise]
wp db export Salvează baza de date a site-ului într-un fișier .sql, folosind datele de conectare din wp-config.php.
wp db export [<file>] [--tables=<tables>] [--exclude_tables=<tables>] [--porcelain] [--<field>=<value>]
wp db import Încarcă un fișier .sql în baza de date a site-ului, cu datele de conectare din wp-config.php.
wp db import [<file>] [--skip-optimization] [--dbuser=<value>] [--dbpass=<value>] [--<field>=<value>]
wp cache flush Golește cache-ul de obiecte WordPress (Object Cache), de exemplu după o modificare directă în baza de date.
wp cache flush
wp transient Citește, setează și șterge transients (valori temporare cu expirare) din terminal, inclusiv toate cele expirate.
wp transient get <key> [--format=<format>] [--network]
wp cron event list Afișează evenimentele programate în WP-Cron: hook-ul, următoarea rulare și cât de des se repetă.
wp cron event list [--fields=<fields>] [--<field>=<value>] [--field=<field>] [--format=<format>]
wp cron event run Rulează imediat evenimente WP-Cron: unul anume, toate cele scadente sau toate, util și pentru un cron real pe server.
wp cron event run [<hook>...] [--due-now] [--exclude=<hooks>] [--all]
wp rewrite flush Regenerează regulile de rescriere a adreselor (permalinks), de exemplu după înregistrarea unui tip de conținut nou.
wp rewrite flush [--hard]
wp media regenerate Regenerează miniaturile imaginilor încărcate, de exemplu după schimbarea temei sau a dimensiunilor de imagine.
wp media regenerate [<attachment-id>...] [--image_size=<image_size>...] [--only-missing] [--skip-delete] [--yes]
wp shell Deschide o consolă PHP interactivă cu WordPress încărcat, în care testezi funcții linie cu linie.
wp shell [--basic]
wp eval Execută cod PHP cu WordPress încărcat: o linie direct din terminal (eval) sau un fișier întreg (eval-file).
wp eval <php-code> [--skip-wordpress]

Hooks: acțiuni și filtre (5)

Funcție Ce face
add_action Leagă o funcție de o acțiune WordPress, ca să ruleze automat când WordPress ajunge în acel punct.
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true
add_filter Leagă o funcție de un filtru: WordPress îi dă o valoare, iar funcția întoarce valoarea modificată.
add_filter( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true
remove_action Scoate o funcție legată de o acțiune sau de un filtru; callback-ul și prioritatea trebuie să fie identice cu cele de la adăugare.
remove_action( string $hook_name, callable|string|array $callback, int $priority = 10 ): bool
do_action Rulează toate funcțiile legate de o acțiune; apelat cu un nume nou, creează un hook propriu în tema sau pluginul tău.
do_action( string $hook_name, mixed ...$arg ): void
apply_filters Trece o valoare prin toate funcțiile legate de un filtru și întoarce rezultatul final; cu un nume nou, creează un filtru propriu.
apply_filters( string $hook_name, mixed $value, mixed ...$args ): mixed

Hooks folosite des (8)

Funcție Ce face
init Acțiunea care rulează după ce WordPress s-a încărcat, înainte de trimiterea antetelor; locul pentru tipuri de conținut, taxonomii și formulare.
do_action( 'init' )
wp_enqueue_scripts Acțiunea în care adaugi fișierele CSS și JavaScript ale temei sau pluginului pentru partea publică a site-ului.
do_action( 'wp_enqueue_scripts' )
the_content Filtrul prin care trece conținutul unui articol după ce este citit din baza de date și înainte de a fi afișat.
apply_filters( 'the_content', string $content )
pre_get_posts Acțiunea care îți permite să schimbi parametrii unei interogări WP_Query înainte să ruleze, fără query_posts() în șablon.
do_action_ref_array( 'pre_get_posts', WP_Query $query )
save_post Acțiunea care rulează după ce un articol, o pagină sau alt tip de conținut a fost salvat; o folosești pentru câmpuri personalizate.
do_action( 'save_post', int $post_id, WP_Post $post, bool $update )
template_redirect Acțiunea care rulează înainte ca WordPress să aleagă șablonul paginii; locul potrivit pentru redirecționări.
do_action( 'template_redirect' )
admin_menu Acțiunea în care adaugi pagini și submeniuri în panoul de administrare, cu add_menu_page() și add_submenu_page().
do_action( 'admin_menu', string $context )
rest_api_init Acțiunea care rulează când WordPress pregătește o cerere către REST API; aici înregistrezi rutele proprii cu register_rest_route().
do_action( 'rest_api_init', WP_REST_Server $wp_rest_server )

Interogări și bucla (6)

Funcție Ce face
WP_Query Clasa care interoghează articole, pagini și tipuri personalizate după criterii: tip, categorie, câmpuri, ordine, paginare.
$query = new WP_Query( array|string $query = '' );
get_posts Întoarce un tablou de articole după aceleași argumente ca WP_Query, fără să atingă bucla principală.
get_posts( array|string $args = null ): WP_Post[]|int[]
have_posts / the_post Bucla WordPress (The Loop): have_posts() verifică dacă mai sunt articole, the_post() îl pregătește pe următorul.
if ( have_posts() ) : while ( have_posts() ) : the_post(); ... endwhile; endif;
get_the_title get_the_title() întoarce titlul unui articol; the_title() îl afișează direct în buclă, cu text opțional înainte și după.
get_the_title( int|WP_Post $post = 0 ): string
get_permalink get_permalink() întoarce adresa permanentă a unui articol sau a unei pagini; the_permalink() o afișează escapată.
get_permalink( int|WP_Post $post = 0, bool $leavename = false ): string|false
get_template_part Încarcă o bucată de șablon din temă (de exemplu template-parts/card-produs.php), cu prioritate pentru tema copil.
get_template_part( string $slug, string|null $name = null, array $args = array() ): void|false

Conținut și tipuri de date (6)

Funcție Ce face
get_post_meta / update_post_meta Citește, salvează, adaugă și șterge câmpuri personalizate (post meta) ale unui articol: preț, oraș, cod produs.
get_post_meta( int $post_id, string $key = '', bool $single = false ): mixed
wp_insert_post Creează un articol (sau îl actualizează, dacă dai ID) din cod; wp_update_post() modifică doar câmpurile date.
wp_insert_post( array $postarr, bool $wp_error = false, bool $fire_after_hooks = true ): int|WP_Error
register_post_type Înregistrează un tip de conținut personalizat (produse, evenimente, rețete), cu meniu propriu în administrare.
register_post_type( string $post_type, array|string $args = array() ): WP_Post_Type|WP_Error
register_taxonomy Creează o taxonomie proprie (ca Categorii sau Etichete), de exemplu „Oraș” pentru produse sau evenimente.
register_taxonomy( string $taxonomy, array|string $object_type, array|string $args = array() ): WP_Taxonomy|WP_Error
add_shortcode Înregistrează un shortcode, de exemplu [dex_pret valoare=”25″], înlocuit în conținut cu HTML-ul întors de funcția ta.
add_shortcode( string $tag, callable $callback )
wp_enqueue_script / wp_enqueue_style Adaugă fișiere JavaScript și CSS în pagină, cu dependențe, versiune și încărcare defer/async (din WordPress 6.3).
wp_enqueue_script( string $handle, string $src = '', string[] $deps = array(), string|bool|null $ver = false, array|bool $args = array() )

Opțiuni, cache și API (4)

Funcție Ce face
get_option / update_option Citesc, salvează și șterg setări permanente ale site-ului în tabelul wp_options (Options API).
get_option( string $option, mixed $default_value = false ): mixed
set_transient / get_transient Transients API păstrează temporar un rezultat costisitor (un apel HTTP, o interogare), cu durată de expirare în secunde.
set_transient( string $transient, mixed $value, int $expiration = 0 ): bool
wp_remote_get Face cereri HTTP din PHP prin HTTP API-ul WordPress și întoarce un tablou cu răspunsul sau un obiect WP_Error.
wp_remote_get( string $url, array $args = array() ): array|WP_Error
register_rest_route Înregistrează un endpoint propriu în REST API-ul WordPress, accesibil la o adresă de forma /wp-json/dex/v1/meniu.
register_rest_route( string $route_namespace, string $route, array $args = array(), bool $override = false ): bool

Securitate (8)

Funcție Ce face
esc_html Escapează textul pentru afișare în HTML: transformă < > & și ghilimelele în entități, ca să nu fie interpretate ca cod.
esc_html( string $text ): string
esc_attr Escapează o valoare pentru un atribut HTML (value, title, alt, data-*), ca ghilimelele să nu închidă atributul.
esc_attr( string $text ): string
esc_url Curăță o adresă pentru afișare în href sau src: respinge protocoalele nepermise și codifică & ca &#038;.
esc_url( string $url, string[] $protocols = null, string $_context = 'display' ): string
wp_kses Păstrează doar etichetele și atributele HTML permise și elimină restul (scripturi, atribute on*, protocoale nesigure).
wp_kses( string $content, array[]|string $allowed_html, string[] $allowed_protocols = array() ): string
sanitize_text_field Curăță textul de pe o singură linie primit de la utilizator: elimină HTML-ul, rândurile noi, tab-urile și spațiile în plus.
sanitize_text_field( string $str ): string
wp_nonce_field Adaugă într-un formular un câmp ascuns cu un nonce, un cod care dovedește că cererea pornește chiar de pe site-ul tău.
wp_nonce_field( int|string $action = -1, string $name = '_wpnonce', bool $referer = true, bool $display = true ): string
check_admin_referer Verifică nonce-ul unei cereri din administrare și oprește execuția cu o pagină de eroare dacă e invalid sau a expirat.
check_admin_referer( int|string $action = -1, string $query_arg = '_wpnonce' ): int|false
current_user_can Verifică dacă utilizatorul conectat are un anumit drept (capability), de exemplu manage_options sau edit_post pentru un articol.
current_user_can( string $capability, mixed ...$args ): bool

Configurare și depanare (2)

Funcție Ce face
WP_DEBUG și debug.log Constantele din wp-config.php care pornesc modul de depanare și scriu erorile PHP în wp-content/debug.log în loc să le afișeze.
define( 'WP_DEBUG', true );
wp-config.php: constante Fișierul de configurare al WordPress: datele bazei de date, prefixul tabelelor, cheile de securitate, adresele site-ului și alte constante.
define( 'NUME_CONSTANTA', valoare );