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?
Hromadná úprava textu v příspěvcích
(7 příspěvků) (4 uživatelé)-
Příspěvek je starý 11 měsíců #
-
Tohle by nepomohlo? http://wordpress.org/extend/plugins/find-replace/
Příspěvek je starý 11 měsíců # -
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 :-)
Příspěvek je starý 11 měsíců # -
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ů?
Příspěvek je starý 11 měsíců # -
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í :-)
Příspěvek je starý 10 měsíců # -
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?Příspěvek je starý 6 měsíců # -
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');
Příspěvek je starý 6 měsíců #
Odpovědět
Pro odeslání příspěvku musíte být přihlášeni.