wp rewrite flush în WordPress

Regenerează regulile de rescriere a adreselor (permalinks), de exemplu după înregistrarea unui tip de conținut nou.

Sintaxă
wp rewrite flush [--hard]

Ce face wp rewrite flush

Regulile de rescriere transformă o adresă ca /meniu/cappuccino/ în interogarea potrivită pentru WordPress. Ele sunt salvate în opțiunea rewrite_rules și se construiesc din structura permalinkurilor, tipurile de conținut și taxonomiile înregistrate.

wp rewrite flush le reconstruiește, la fel ca butonul „Salvează modificările” din Setări → Legături permanente. E nevoie de asta după ce adaugi un tip de conținut cu register_post_type() sau schimbi un slug de rescriere, altfel paginile noi dau 404.

Cu --hard se actualizează și fișierul .htaccess (doar pe site-uri simple, nu pe multisite). Pentru asta, WP-CLI trebuie să știe că serverul are mod_rewrite: adaugi în wp-cli.yml sau config.yml cheia apache_modules cu mod_rewrite.

Parametri

Parametru Descriere
--hard Actualizează și regulile din .htaccess, nu doar pe cele din baza de date. Funcționează doar pe instalări simple (nu multisite).

Exemple

Exemplul 1: După activarea unui plugin cu un tip de conținut nou

Adresele de tip /meniu/... încep să funcționeze după reconstruirea regulilor.

wp rewrite flush

Ieșire în terminal

Success: Rewrite rules flushed.

Exemplul 2: Schimbarea structurii permalinkurilor

wp rewrite structure setează structura, apoi reconstruiește singur regulile; de aceea apar două mesaje.

wp rewrite structure '/%postname%/'

Ieșire în terminal

Success: Rewrite structure set.
Success: Rewrite rules flushed.

Exemplul 3: Configurare pentru –hard pe Apache

Fișierul wp-cli.yml din directorul site-ului îi spune lui WP-CLI că serverul are mod_rewrite. Apoi wp rewrite flush --hard poate scrie și în .htaccess.

# wp-cli.yml
apache_modules:
  - mod_rewrite

Greșeli frecvente

  • Apelarea flush_rewrite_rules() în cod la fiecare încărcare de pagină (de exemplu pe init) în loc de o singură reconstruire: e o operație costisitoare. Fă-o o dată, la activarea pluginului sau cu wp rewrite flush.
  • Rularea cu --skip-plugins sau --skip-themes: tipurile de conținut din pluginuri și teme nu se încarcă, iar regulile lor lipsesc după reconstruire. WP-CLI avertizează în acest caz.
  • --hard fără apache_modules configurat: WP-CLI avertizează că regenerarea .htaccess are nevoie de configurare specială. Pe Nginx, .htaccess nu se folosește deloc.

Comenzi înrudite

  • register_post_type: Înregistrează un tip de conținut personalizat (produse, evenimente, rețete), cu meniu propriu în administrare.
  • register_taxonomy: Creează o taxonomie proprie (ca Categorii sau Etichete), de exemplu „Oraș” pentru produse sau evenimente.
  • wp plugin activate: Activează sau dezactivează pluginuri instalate, unul câte unul sau toate odată, fără panoul de administrare.