Hromadná úprava textu v příspěvcích

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Hromadná úprava textu v příspěvcích

Zvolené téma obsahuje celkem 6 odpovědí. Do diskuze (4 účastníci) se naposledy zapojil uživatel  Lukenzi a poslední změna je stará 11 let, 6 měsíců.

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (z celkem 7)
  • Autor
    Příspěvky
  • #1746

    lucky.man
    Participant
    Web

    Ahoj, potřeboval bych poradit s hromadnou opravou textu v příspěvcích. V některých článcích mám řetězec textu (pořád stejný), který bych potřeboval nahradit za jiný, zase stejný v daných příspěvcích. Jak nejlépe na to?

    #11875

    togur
    Participant
    Web
    #11876

    admin
    Keymaster
    Web

    Přesně tak, používám podobný plugin Search and Replace. Do budoucna by se ale možná hodilo zmíněný řetězec (pokud se vyskytuje u mnoha příspěvků) spíše zakomponovat do šablony (např. s pomocí nějaké hodnoty uživatelského pole).

    A před spuštěním skriptu určitě zálohovat databázi :-)

    #11877

    lucky.man
    Participant
    Web

    Díky. Popravdě mi řešení pomocí pluginu nenapadlo, přemýšlel jsem o nějaké úpravě databáze off line (export/import).

    Jaká je časová náročnost pro řádově stovky/tisíce článků?

    #11878

    admin
    Keymaster
    Web

    Ano, je to také možné, ale plugin by to měl zvládnout, pokud není databáze opravdu obrovská. Zkoušel jsem to asi u dvou tisíc článků, kde se text vyskytoval cca u 20 % z nich. Vše proběhlo bez problémů během chvilky. Před samotným nahrazením můžete zkusit potřebné řetězce pouze vyhledat – přehledně uvidíte kolik jich je a v jakých tabulkách. Zkusil bych asi zazálohovat databázi, spustit to a pak se uvidí :-)

    #11879

    lucky.man
    Participant
    Web

    Plugin funguje výborně, žádný problém.

    Jenom bych ještě potřeboval poradit, jak dát nějakou relativní proměnnou za část textu, aby šly najít všechny části kódu, které mají v sobě (různé) časové razítko jako např. tady: <del datetime="2011-06-02T19:00:39+00:00">TEXT</del>.

    Chtěl bych opravit komplet části kódu, které v sobě mají něco jako “2011-06-02T19:00:39+00:00”, ale nevím jak to udělat hromadně pro různé datumy.

    Poradí někdo?

    #11880

    Lukenzi
    Participant

    O jakou úpravu se jedná? Co konkrétně v tom tagu datetime je třeba upravit? Musí to být upraveno v databázi? Nestačí jednoduchý filtr, který ošetří pouze výstupní text (add_filter)?.

    Např pro odstranění tagu “del” stačí jednoduché

    function RemoveDatetime($content){

    return preg_replace('#(.*)<del datetime="(.*)">(.*)</del>(.*)#is', '$1$3$4', $content);

    }

    add_filter('the_content', 'RemoveDatetime');

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (z celkem 7)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti