it-swarm.com.de

Aktualisieren des Beitragstitels mit wp_update_post

Ich erstelle einen benutzerdefinierten Beitragstyp für eine Personenseite für eine Kundenwebsite, die Metafelder für Vor- und Nachnamen enthält, möchte jedoch auch den Titel für die benutzerdefinierten Beiträge so aktualisieren, dass er aus einer Kombination der beiden besteht (dh "Vorname") Nachname").

Ich verwende wp_update_post, um dies zu tun, stoße aber auf ein Problem. Wenn ich einen Beitrag aktualisiere, werden die Daten korrekt aktualisiert, aber mein Cursor dreht sich ständig und die Seite wird nie neu geladen. Ich nehme an, dass dies daran liegt, dass wp_update_post eine Endlosschleife save_post verursacht, aber die empfohlene Lösung für dieses Problem im WordPress-Codex nicht funktioniert, und ich nehme an, dass es ein Problem mit dem Aufruf einer oder mehrerer Funktionen gibt .

Hier ist mein Code:

add_action('save_post', 'save_details');
add_action('edit_post', 'save_details');

function save_details($post_id){
  global $post;

      if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
              return $post_id;
      }

        update_post_meta($post->ID, "firstname", $_POST["firstname"]);
        update_post_meta($post->ID, "lastname", $_POST["lastname"]);

        if ( ! wp_is_post_revision( $post_id ) ){

            $args = array();
                $args['ID'] = $post_id;
                $args['post_title' ] = implode(' ', array($_POST["firstname"],$_POST["lastname"]));

            remove_action('save_details','save_post');
                wp_update_post( $args );
            add_action('save_details','save_post');
    }

}   
2
James Jackson

die Parameter für remove_action sind falsch. Sie sollten genau dieselben Parameter sein, die Sie in add_action verwendet haben. Zuerst sollte es sich um den Hook und dann um den Funktionsnamen handeln. remove_action('save_post','save_details');

0
Mark Kaplun