Beitragsautor wird zu admin geändert, nachdem sein Beitrag von admin geändert wurde

Ich schreibe ein Plugin, das es ermöglicht, Beiträge vom Front-End zu schreiben. Diese Beiträge müssen vor der Veröffentlichung vom Administrator überprüft werden. Wenn der Administrator den Post bearbeitet oder den Post veröffentlicht, wird der Postautor vom ursprünglichen Autor in admin geändert. Wie kann ich das verhindern?

Solutions Collecting From Web of "Beitragsautor wird zu admin geändert, nachdem sein Beitrag von admin geändert wurde"

Die administrativen Editoren könnten den Autor manuell reparieren .

Alternativ können Sie benutzerdefinierte Post-Metadaten hinzufügen, um den ursprünglichen Autor festzulegen. publish_post dann in die Aktionen publish_post oder transition_post_status (oder sogar save_post ) save_post , können Sie prüfen, ob die Metadaten vorhanden sind, wenn ein Beitrag veröffentlicht wird, und falls vorhanden, ersetzen Sie den Autor des Beitrags durch das Original aus dem Meta -Daten.

Versuch es mit einem Haken zu knacken:

 function correct_post_data( $strNewStatus, $strOldStatus, $post ) { /* Only pay attention to posts (ie ignore links, attachments, etc. ) */ if( $post->post_type !== 'post' ) return; /* If this is a new post, save the original author into the post's meta-data. */ if( $strOldStatus === 'new' ) { update_post_meta( $post->ID, 'original_author', $post->post_author ); } /* If this post is being published, try to restore the original author */ if( $strNewStatus === 'publish' ) { $originalAuthor = get_post_meta( $post->ID, 'original_author' ); /* If this post has an original author and it's not who the post says it is, revert the author field. */ if( !empty( $originalAuthor ) && $originalAuthor != $post->post_author ) { $postData = array( 'ID' => $post->ID, 'post_author' => $originalAuthor ); wp_update_post( $postData ); //May wish to check if this returns 0 for error-handling } } } add_action( 'transition_post_status', 'correct_post_data' ); 

Ein Check für !is_admin() irgendwo dort könnte auch nützlich sein, um zu bestätigen, dass sich der Benutzer irgendwo im Frontend der Site befindet.

Ich habe das gleiche Problem vor ein paar Wochen erlebt. Mein Problem war, dass ich einen benutzerdefinierten Beitragstyp verwendet habe und ich keine Unterstützung für den Autor hinzugefügt habe. Es wurde immer vom richtigen Autor veröffentlicht, aber wenn der Administrator den Poststatus geändert oder den Beitrag aktualisiert hat, wird der Administrator zum Postautor.

Versuchen Sie, Unterstützung für den Autor hinzuzufügen und sehen Sie, ob das hilft!

Das scheint ein sehr seltsames Thema zu sein. Der Status eines Posts sollte die Benutzereinstellung nicht beeinflussen.

Haben Sie darüber nachgedacht, Gravity Forms zu verwenden? Es ist ein kostenpflichtiges Plugin, aber es macht einen netten Job beim Erstellen der Formulare und es ist relativ einfach, ein Frontend-Formular zu erstellen, das automatisch einen Post erstellt (entweder im published oder draft oder review Zustand).