Domovská » WordPress » Hmotnost Najít a nahradit WordPress databáze - snadný způsob

    Hmotnost Najít a nahradit WordPress databáze - snadný způsob

    Existuje několik příležitostí, kdy musíme změnit URL v naší databázi webových stránek WordPress. Například, musíme to udělat po migraci databáze WordPress z jednoho místa, např. od http://acme.com vzdáleného výrobního místa http://acme.dev webové stránky místního rozvoje na našem počítači.

    WordPress.org hostí velké množství pluginů, jako je WP DBManager a WP Migrate DB, a existuje také řada nástrojů třetích stran, které vám umožní import databáze snadno. Zložitá část má změnit každou instanci URL uvnitř databáze.

    Po migraci databáze, URL uvnitř stále odkazují na staré stránky, v tomto případě acme.com. Staré adresy URL můžete najít v wp_options tabulka, nastavená jako hodnota siteurl a Domov možnosti a je to pravděpodobně také vloženo do několika dalších řádků a tabulek v databázi. Tyto staré adresy URL mohou nakonec zabránit správnému spuštění vašich stránek změnit na novou adresu URL, v našem příkladu acme.dev.

    IMAGE: Sequel Pro, vyhledávací hodnota databáze

    V tomto bodě, přístup k našemu vývojovému místu na adrese acme.dev jednoduše povede na prázdnou stránku.

    Jak tedy změníme všechny tyto adresy URL v databázi?

    Spuštění dotazu SQL

    Obvykle by lidé spustili následující dotaz SQL, který nahradí hodnoty siteurl a Domov možnosti v wp_options stůl.

     UPDATE wp_options SET option_value = nahradit (option_value, 'http://acme.com', 'http://acme.dev') WHEE option_name = 'home' NEBO option_name = 'siteurl'; 

    Následně použijí jiný SQL dotaz, aby nahradily všechny výskyty URL v wp_posts stůl, a to v post_content sloupce každého řádku.

     UPDATE wp_posts SET post_content = nahradit (post_content, 'http://acme.com', 'http://acme.dev'); 

    Spuštění těchto dotazů je funkční řešení, ale zároveň není vhodné. Mohlo by to být dokonce nervy-wracking, vidět jak databáze může obrátit haywire kvůli jednoduchému dohledu uvnitř dotazu.

    Využití WP-CLI

    Další cesta, kterou můžeme udělat, a kterou jsem zjistil jako vhodnější alternativu, je použití příkazového řádku WP-CLI. To znamená, že budete muset nainstalovat WP-CLI.

    Za předpokladu, že jste nainstalovali WP-CLI a máte wp příkaz dostupný jako alias, přejděte do adresáře, kde jsou umístěny soubory stránek WordPress.

    Potom spusťte následující příkaz:

    wp search-nahradit 'http://acme.com' http://acme.dev

    První parametr, 'http://acme.com', je starý záznam, který má být nahrazen druhým, 'http://acme.dev'.

    Příkazový řádek prohledá všechny tabulky v databázi, nejen post_content sloupec a. \ t wp_options stůl, a nahradit všechny instance vstupu, který prošel parametry příkazu.

    Jak můžete vidět z předchozího snímku, bylo provedeno celkem 225 nahrazení. A udělali jsme to prostým příkazem.

    Myslím, že stojí za zmínku, že můžeme použít wp search-replace příkaz, a to nejen pro nahrazení adres URL, ale pro libovolný kus hodnota uloženy v databázi. Operaci můžeme také omezit na určitou tabulku předáním názvu tabulky jako čtvrtého parametru následujícím způsobem:

    wp search-replace '.jpg ".webp' wp_posts

    Spuštění výše uvedeného příkazu bude pouze prohledávat wp_posts, tabulka, která ukládá náš obsah - příspěvky, stránky atd. - a nahrazuje příponu obrázku z .jpg na .webp.

    WP-CLI dělá zamotanou SQL operaci intuitivnější a můžete s ní pracovat pohodlnějším způsobem. Chcete-li doladit své příkazy, podívejte se do dokumentace WP-CLI, která vám poskytne seznam možností, jak provést pokročilejší operaci s wp search-replacepříkaz.