Wie führe ich eine function einmal für jeden Post in der database aus?

Ich habe eine einfache function, die den gesamten Post nach Veröffentlichung / Aktualisierung automatisch formatiert.

Es ist süchtig nach:

add_action('save_post', 'myFunction'); 

Ich möchte jeden Post formatieren, den ich bereits in der database habe. Ich weiß, ich kann jeden Beitrag öffnen und auf Update klicken, um den “save_post” Hook auf myFunction auf dem Post aufzurufen, aber meine Post-database ist ziemlich groß ..

Ist es möglich, die function nur einmal auf jedem bereits veröffentlichten Post auszuführen oder jeden Post zu aktualisieren, damit die function automatisch vom Hook aufgerufen wird?

Solutions Collecting From Web of "Wie führe ich eine function einmal für jeden Post in der database aus?"

Ja, das ist möglich. So etwas sollte sich auf alle Beiträge auswirken, die derzeit veröffentlicht werden. Führen Sie das Ganze einmal aus und deaktivieren Sie es dann, indem Sie die Aktion add_action auskommentieren oder Sie haben eine Menge unerwünschter Abfragen an die database.

Einmaliges Ausführen: Wenn dieser Code in Ihrer functions.php gespeichert wird, wird die function ausgeführt, wenn das Frontend Ihrer Site in einen Browser geladen wird. Laden Sie die Homepage Ihrer Site in einen Browser und deaktivieren Sie die function. Bestätigen Sie, dass Ihr Postformat auf vorhandene Posts angewendet wurde.

  add_action( 'init', 'my_function', 10); function my_function() { $args = array( 'post_type' => 'post', 'post_status' => 'publish'); $pages = get_pages($args); foreach ( $pages as $page ) { // Do something here. Call your formatting function } } 

Edit: Wenn es absolut nicht mehr als einmal ausgeführt werden soll, suchen Sie nach einer SQL-Tabelle mit einem booleschen Wert von true oder false. Wenn false oder table nicht vorhanden sind, führen Sie die function aus, erstellen Sie die Tabelle und legen Sie sie auf true fest.

Es könnte auch in Betracht gezogen werden, eine database zu sichern und eine SQL-Suche und -Ersetzung durchzuführen. Hängt davon ab, was du mit all deinen Posts machen willst:

 UPDATE wp_posts SET post_content = replace(post_content, 'Find This String', 'Replace With This String');