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á 12 let, 3 měsíce.
-
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?
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 :-)
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ů?
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í :-)
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?
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');
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.
WordPress – novinky, návody a zajímavosti