web-dev-qa-db-fra.com

Définir un utilisateur comme auteur de tous les "nouveaux messages" publiés

Un auteur 'XYZ' doit être défini comme auteur par défaut de tous nouveaux messages . Indépendamment de l'auteur qui a publié le contenu, l'article doit être enregistré par cet auteur 'XYZ'.

Existe-t-il un plugin ou des fonctions personnalisées répondant à cet objectif?

Note : The existing posts should stay as it is, no 'change of author' for old posts, only new one should be effected.

2
uzair
function wp84782_replace_author( $post_ID )  
{
  $my_post = array();
  $my_post['ID'] = $post_ID;
  $my_post['post_author'] = 1 ; //This is the ID number of whatever author you want to assign

// Update the post into the database
  wp_update_post( $my_post );
}
add_action( 'publish_post', 'wp84782_replace_author' );

Mise à jour: ce hook s'exécute pendant la publication de la publication, pas après, de sorte que la commande tente d'écraser ce que le système fait en même temps. Donc, voici une version modifiée qui annule tout cela si le message a été publié précédemment. Si vous souhaitez que l'utilisateur ne soit jamais autorisé à mettre à jour l'auteur, vous pouvez peut-être masquer ce champ méta. Je ne suis pas au courant d'un crochet qui court immédiatement après la publication d'un article, mais s'il en existait un, cela permettrait de résoudre ce problème.

function wp84782_replace_author( $post_ID )  
{
    if(get_post_status( $post_ID ) == 'publish'){
        return;
    }
    else {
        $my_post = array();
        $my_post['ID'] = $post_ID;
        $my_post['post_author'] = 1 ; //This is the ID number of whatever author you want to assign

        // Update the post into the database
        wp_update_post( $my_post );
    }
}
add_action( 'publish_post', 'wp84782_replace_author' );

Avertissement: Tout ce code n'est pas testé, des modifications mineures peuvent donc être nécessaires.

2
Jake Lisby