Entfernen Sie das Bild von post_content in save_post

Ich versuche, eine function in functions.php einzurichten, die ein Bild aus dem post_content beim Speichern entfernt. Alles funktioniert so lange, bis ich versuche, den Inhalt zu speichern, die Seite hängt einfach und ich bekomme den Fehler ‘500 Interner Server’.

function remove_post_image( $post_ID ){ // get the post $the_post = get_post($post_ID); // get the content of the post $post_content = $the_post->post_content; // replace any images $content = preg_replace("/]+\>/i", "", $post_content); // save the post $my_post = array(); $my_post['ID'] = $post_ID; $my_post['post_content'] = $content; // Update the post into the database wp_update_post( $my_post ); return $post_ID; } add_action('save_post', 'remove_post_image'); 

Ich fürchte, ich vermisse etwas sehr Grundlegendes. Kann jemand etwas entdecken, was ich falsch mache?


bearbeiten

Ich sehe schon, wie dumm das war. Ich habe Erfolg mit dem Folgenden, möchte aber immer noch wissen, ob das der beste Weg ist? Ich benutze die Aktion content_save_pre …

 function remove_post_image( $content ){ // replace any images $content = preg_replace("/]+\>/i", "", $content); return $content; } add_action('content_save_pre', 'remove_post_image'); 

Solutions Collecting From Web of "Entfernen Sie das Bild von post_content in save_post"

content_save_pre wäre ein viel besserer Hook zum Striping der Bilder und zum Setzen von Post-Thumbnails als Post-Meta können Sie save_post da der erste Hook gefeuert wird, bevor die Post- update_post_meta gesetzt wird und Sie diese für update_post_meta benötigen.

Ihre function ruft wp_update_post() , die wp_insert_post() save_post , die die save_post Aktion save_post . Deine function.

Es wäre besser, etwas wie wp_insert_post_data das Daten filtern soll, und nicht save_post , um lediglich anzuzeigen, dass Daten bereits verarbeitet wurden.