Wie kann man den Inhaltsfilter dauerhaft anwenden?

Ich habe den folgenden temporären Filter, um einen Inhaltserrors zu beheben. Wir haben Daten in unseren Posts, die 4-stellige Postleitzahlen haben, weil die führende Null abgeschnitten wurde, als die ursprüngliche Datei erstellt wurde. (Zum Beispiel ist eine Massachusetts Postleitzahl 0XXXX, aber jetzt in unserem Inhalt ist es XXXX)

function fix_zip_code($content){ if (preg_match('/(\d{4})/i',$content, $match)){ $content = str_replace($match[0],'0'.$match[0],$content); } return $content; } add_filter('the_content', 'fix_zip_code'); 

Wie kann ich diesen Filter auf alle Inhalte gleichzeitig anwenden und die Posts erneut speichern, damit ich den Regex-Filter vollständig entfernen kann?

Solutions Collecting From Web of "Wie kann man den Inhaltsfilter dauerhaft anwenden?"

 //run once $allposts = get_posts('post_status=publish&numberposts=-1'); foreach ($allposts as $thispost) { wp_update_post( array( 'ID' => $thispost->ID, 'post_content' => fix_zip_code($thispost->post_content) ) ); } 

Aber wie bereits erwähnt, sichern Sie Ihre database, bevor Sie etwas tun …

Sie können versuchen, das von der WP / PHP-Seite aus zu erreichen, aber ich denke, in diesem Fall wäre es einfacher, die Ersetzung auf der database auszuführen.

Es gibt verschiedene Tools, zum Beispiel Suchen und Ersetzen für WordPress-databaseen . Stellen Sie sicher, dass Sie die database zuvor ordnungsgemäß sichern und wenn möglich auf einer separaten Installation testen.