Un peu fatigué avec le jetlag, je reprends l’image confectionnée l’année dernière en y rajoutant une petite touche :

Un peu fatigué avec le jetlag, je reprends l’image confectionnée l’année dernière en y rajoutant une petite touche :

Le guest-blogging permet d’ouvrir un site WordPress à d’autres rédacteurs : membres d’une communauté, experts invités, partenaires, clients, contributeurs réguliers ou auteurs occasionnels.
L’idée est simple : permettre à quelqu’un de proposer un article sans lui donner les clés du camion. Il doit pouvoir écrire, sauvegarder un brouillon, parfois envoyer des images, mais il ne doit pas pouvoir publier seul, modifier les articles des autres, installer des plugins ou transformer votre site en festival de liens douteux.
La bonne nouvelle : WordPress possède déjà un système de rôles et de capacités très solide. La mauvaise : si vous donnez les mauvais droits, vous pouvez rapidement transformer un simple article invité en migraine administrative.
Voici donc une méthode moderne pour accepter des articles invités dans WordPress, sans modifier les fichiers du core, sans vieux plugin abandonné, et avec un vrai workflow éditorial.
Dans WordPress, le rôle Abonné est volontairement très limité. Un abonné peut se connecter et gérer son profil, mais il ne peut pas créer d’article.
L’ancienne méthode consistait à ajouter edit_posts et upload_files au rôle abonné. Je ne le recommande plus.
Pourquoi ? Parce que le rôle abonné sert souvent à autre chose : commentaires, comptes clients, espace membre, newsletter, boutique WooCommerce, LMS, forum, téléchargement, ou simple inscription. Si vous ajoutez des capacités éditoriales à ce rôle, tous les abonnés héritent potentiellement de ces droits.
La bonne approche consiste plutôt à créer un rôle dédié, par exemple :
Ce rôle peut ensuite recevoir exactement les droits nécessaires, pas plus.
WordPress propose déjà un rôle très pratique : Contributeur.
Un contributeur peut créer et modifier ses propres articles, mais il ne peut pas les publier. Ses contenus restent donc en attente de relecture. C’est souvent le meilleur point de départ pour le guest-blogging.
Le rôle Auteur, lui, peut publier ses propres articles. Je le réserverais aux rédacteurs de confiance, déjà validés, ou aux contributeurs réguliers.
Voici une base simple :
| Besoin | Rôle conseillé | Pourquoi |
|---|---|---|
| Soumission occasionnelle | Contributeur | L’auteur peut proposer un brouillon, mais pas publier. |
| Rédacteur régulier | Auteur | Il peut publier ses propres contenus si vous lui faites confiance. |
| Responsable éditorial | Éditeur | Il peut relire, modifier et publier les contenus des autres. |
| Invité avec upload média | Rôle personnalisé | Le contributeur natif ne peut pas envoyer d’images. |
Dans la plupart des cas, je recommande un rôle personnalisé basé sur Contributeur, auquel on ajoute uniquement la capacité d’envoyer des médias si nécessaire.
La méthode la plus propre consiste à créer un petit mu-plugin. Il ajoute un rôle dédié, sans toucher au core WordPress et sans dépendre d’un plugin de gestion de rôles pour une configuration aussi simple.
Créez ce fichier :
wp-content/mu-plugins/sky-guest-author-role.php
Si le dossier mu-plugins n’existe pas, créez-le.
mkdir -p wp-content/mu-plugins
Ajoutez ensuite ce code :
<?php
/**
* Plugin Name: Sky Guest Author Role
* Description: Adds a limited guest author role for submitted articles.
* Author: SkyMinds
* Version: 1.0.0
*
* @package SkyMinds\GuestAuthor
*/
declare(strict_types=1);
namespace SkyMinds\GuestAuthor;
add_action( 'init', __NAMESPACE__ . '\register_guest_author_role' );
/**
* Register a limited guest author role.
*
* This role can create and edit its own posts, upload media, and read
* the dashboard. It cannot publish posts or edit other authors' posts.
*
* @return void
*/
function register_guest_author_role(): void {
$role = get_role( 'sky_guest_author' );
if ( $role instanceof \WP_Role ) {
return;
}
add_role(
'sky_guest_author',
__( 'Auteur invité', 'default' ),
array(
'read' => true,
'edit_posts' => true,
'upload_files' => true,
)
);
}Langage du code : HTML, XML (xml)
Ce rôle permet à un invité de se connecter, créer des articles, modifier ses propres brouillons et envoyer des médias. Il ne peut pas publier directement, ni modifier les articles des autres.
C’est volontaire. Le guest-blogging sans relecture, c’est un peu comme ouvrir les commentaires sans anti-spam en 2007 : techniquement possible, émotionnellement discutable.
Si vous préférez WP-CLI, vous pouvez aussi créer un rôle basé sur le rôle contributeur :
wp role create sky_guest_author "Auteur invité" --clone=contributorLangage du code : PHP (php)
Puis ajouter la capacité d’envoyer des médias :
wp cap add sky_guest_author upload_files
Vérifiez ensuite les capacités du rôle :
wp cap list sky_guest_authorLangage du code : PHP (php)
Cette méthode est rapide et propre. En revanche, elle modifie la base de données. Le mu-plugin, lui, documente la logique dans le code et se versionne plus facilement.
Ça dépend de votre workflow.
Autoriser l’envoi d’images simplifie la rédaction. L’auteur peut illustrer son article directement dans l’éditeur. Mais cela ouvre aussi un nouveau point de vigilance : poids des fichiers, nommage, droits d’utilisation, métadonnées, formats, images inutiles, et parfois fichiers envoyés un peu trop créativement.
Pour un site éditorial sérieux, je recommande cette règle :
Si vous autorisez les uploads, surveillez aussi les types MIME autorisés et les tailles maximales. WordPress fait déjà une partie du travail, mais le workflow éditorial doit rester clair.
Avec les bonnes capacités, un auteur invité ne peut pas modifier les articles des autres. C’est le rôle du système de permissions WordPress.
Il n’est donc plus nécessaire de modifier wp-admin/edit.php pour filtrer les articles par auteur. C’était une solution de dépannage à une époque, mais elle n’a plus sa place dans un WordPress maintenable.
Si vous voulez vraiment alléger l’interface et masquer les contenus des autres auteurs dans la liste, faites-le via les hooks WordPress, pas dans le core.
Exemple de filtre côté administration :
<?php
/**
* Plugin Name: Sky Limit Guest Author Admin Lists
* Description: Limits guest authors to their own posts and media in the WordPress admin.
* Author: SkyMinds
* Version: 1.0.0
*
* @package SkyMinds\GuestAuthor
*/
declare(strict_types=1);
namespace SkyMinds\GuestAuthor;
add_action( 'pre_get_posts', __NAMESPACE__ . '\limit_guest_author_post_list' );
add_filter( 'ajax_query_attachments_args', __NAMESPACE__ . '\limit_guest_author_media_library' );
/**
* Limit the Posts screen to the current guest author's own posts.
*
* @param \WP_Query $query Current query object.
* @return void
*/
function limit_guest_author_post_list( \WP_Query $query ): void {
if ( ! is_admin() || ! $query->is_main_query() ) {
return;
}
if ( ! function_exists( 'get_current_screen' ) ) {
return;
}
$screen = get_current_screen();
if ( ! $screen || 'edit-post' !== $screen->id ) {
return;
}
$user = wp_get_current_user();
if ( ! in_array( 'sky_guest_author', (array) $user->roles, true ) ) {
return;
}
$query->set( 'author', get_current_user_id() );
}
/**
* Limit the media modal to files uploaded by the current guest author.
*
* @param array<string, mixed> $args Attachment query arguments.
* @return array<string, mixed>
*/
function limit_guest_author_media_library( array $args ): array {
$user = wp_get_current_user();
if ( ! in_array( 'sky_guest_author', (array) $user->roles, true ) ) {
return $args;
}
$args['author'] = get_current_user_id();
return $args;
}Langage du code : HTML, XML (xml)
Ce snippet ne donne pas de droits supplémentaires. Il améliore seulement l’expérience dans l’administration en limitant les listes visibles pour les auteurs invités.
Un invité n’a pas besoin de voir tout le tableau de bord. Il lui faut surtout :
Vous pouvez masquer les menus inutiles avec un mu-plugin. Ce masquage est ergonomique, pas sécuritaire. La vraie sécurité reste dans les capacités du rôle.
<?php
/**
* Plugin Name: Sky Guest Author Admin Menu
* Description: Simplifies the WordPress admin menu for guest authors.
* Author: SkyMinds
* Version: 1.0.0
*
* @package SkyMinds\GuestAuthor
*/
declare(strict_types=1);
namespace SkyMinds\GuestAuthor;
add_action( 'admin_menu', __NAMESPACE__ . '\simplify_guest_author_admin_menu', 999 );
/**
* Hide unnecessary admin menu entries for guest authors.
*
* @return void
*/
function simplify_guest_author_admin_menu(): void {
$user = wp_get_current_user();
if ( ! in_array( 'sky_guest_author', (array) $user->roles, true ) ) {
return;
}
remove_menu_page( 'index.php' );
remove_menu_page( 'edit-comments.php' );
remove_menu_page( 'tools.php' );
}Langage du code : HTML, XML (xml)
Vous pouvez adapter selon votre workflow. Si vous demandez aux auteurs invités de répondre aux commentaires pendant quelques semaines, ne masquez pas le menu Commentaires.
Pour éviter d’envoyer les invités sur un tableau de bord inutile, redirigez-les directement vers l’écran d’ajout d’article.
<?php
/**
* Plugin Name: Sky Guest Author Login Redirect
* Description: Redirects guest authors to the post editor after login.
* Author: SkyMinds
* Version: 1.0.0
*
* @package SkyMinds\GuestAuthor
*/
declare(strict_types=1);
namespace SkyMinds\GuestAuthor;
add_filter( 'login_redirect', __NAMESPACE__ . '\redirect_guest_author_after_login', 10, 3 );
/**
* Redirect guest authors to the post editor after login.
*
* @param string $redirect_to Requested redirect URL.
* @param string $requested_redirect_to Originally requested redirect URL.
* @param \WP_User|\WP_Error $user Logged-in user or error.
* @return string
*/
function redirect_guest_author_after_login( string $redirect_to, string $requested_redirect_to, $user ): string {
if ( ! $user instanceof \WP_User ) {
return $redirect_to;
}
if ( ! in_array( 'sky_guest_author', (array) $user->roles, true ) ) {
return $redirect_to;
}
return admin_url( 'post-new.php' );
}Langage du code : HTML, XML (xml)
Si vous préférez une solution prête à l’emploi, votre plugin Sky Login Redirect peut aussi servir à améliorer l’expérience après connexion.
Il existe deux grandes méthodes.
C’est la méthode la plus agréable pour les contributeurs réguliers. Ils utilisent l’éditeur WordPress, ajoutent leurs titres, intertitres, images, citations et brouillons directement dans le CMS.
Elle convient bien aux communautés, magazines, associations, médias de niche ou sites avec plusieurs auteurs.
C’est plus adapté aux contributions occasionnelles, aux demandes SEO, aux partenaires ou aux invités que vous ne connaissez pas encore.
Sur SkyMinds, tu as déjà une page dédiée : Soumettre un article invité. Elle fixe les règles, le format attendu, la longueur, les limites de liens, le processus de relecture et les critères de qualité.
Pour un site exposé au spam, je commencerais par une page de soumission stricte. Ensuite, je créerais des comptes WordPress seulement pour les auteurs validés.
La partie technique ne suffit pas. Le guest-blogging demande surtout un workflow clair.
Sans cette méthode, vous recevrez vite des articles “exclusifs” déjà publiés sur douze sites, avec trois liens vers un comparateur d’assurances et un paragraphe généré à la louche. Le web, ce grand poète.
Avant d’ouvrir la porte, définissez vos règles. Sinon, chaque contribution devient une négociation.
Ces règles protègent votre site, votre ligne éditoriale et votre référencement. Elles évitent aussi les échanges interminables avec des “outreach specialists” dont le sujet passionnant est, bizarrement, toujours une page de casino ou de CBD.
Un auteur invité n’a pas besoin des droits suivants :
publish_posts, sauf auteur de confiance ;edit_others_posts ;delete_others_posts ;edit_pages ;manage_options ;install_plugins ;activate_plugins ;edit_theme_options ;edit_users ;unfiltered_html.La capacité unfiltered_html mérite une mention spéciale. Elle permet de publier du HTML non filtré. Ne la donnez pas à un auteur invité. WordPress filtre déjà le contenu selon les capacités de l’utilisateur, et c’est très bien comme ça.
Si vous autorisez les inscriptions publiques, préparez-vous au spam. Les robots adorent les formulaires d’inscription WordPress. Eux aussi rêvent d’écrire pour vous, mais surtout pour leurs backlinks.
Je recommande :
Si vous devez lutter contre les inscriptions jetables, vous pouvez aussi regarder votre ancien plugin Disposable Registrations Killer, même s’il mériterait probablement une refonte moderne avant usage sur un site critique.
WordPress propose des mots de passe d’application pour authentifier des outils externes via l’API REST. C’est pratique pour connecter une application, automatiser une publication ou intégrer un workflow externe.
Mais ce n’est pas le bon outil pour des auteurs invités classiques. Un contributeur humain doit se connecter à WordPress avec son compte, écrire dans l’éditeur, puis soumettre un brouillon.
Réservez les mots de passe d’application aux intégrations techniques. Ils sont révocables individuellement, mais ils restent liés à un compte utilisateur. Donc, comme toujours avec WordPress : pas besoin, pas d’accès.
Quand une campagne d’articles invités se termine, ne laissez pas les accès ouverts indéfiniment.
Si vous avez créé le rôle avec le mu-plugin ci-dessus, vous pouvez simplement retirer le rôle des utilisateurs. Évitez de supprimer brutalement un rôle tant que des comptes l’utilisent encore.
Pour lister les utilisateurs avec WP-CLI :
wp user list --role=sky_guest_authorLangage du code : PHP (php)
Pour changer le rôle d’un utilisateur :
wp user set-role 123 subscriberLangage du code : JavaScript (javascript)
Oui, si vous acceptez encore des contributions. Une page claire filtre les demandes faibles avant même qu’elles arrivent dans votre boîte mail.
Votre page Soumettre un article invité joue ce rôle. Elle explique les attentes, les sujets acceptés, les limites de liens, la qualité attendue et le processus de révision.
Je recommande de garder cette page séparée de l’article technique. L’article explique comment configurer WordPress. La page de soumission s’adresse aux auteurs potentiels. Les deux intentions sont différentes, donc elles peuvent coexister sans se cannibaliser.
Si vous voulez ouvrir votre site aux contributeurs sans compromettre la sécurité, je peux vous aider à mettre en place un workflow propre : rôles personnalisés, capacités limitées, interface simplifiée, modération, formulaires et protections anti-spam.
J’interviens comme développeur WordPress et WooCommerce pour créer des espaces éditoriaux fiables, performants et faciles à maintenir, sans modifier le core WordPress ni empiler des plugins fragiles.
Vous voulez accepter des articles invités sans ouvrir toute l’administration ? Contactez-moi. Je vous aiderai à construire un système éditorial clair, sécurisé et durable.
read, edit_posts et éventuellement upload_files.publish_posts aux invités occasionnels.Le rôle Contributeur convient bien aux invités occasionnels, car il permet de rédiger un article sans le publier. Si l’auteur doit envoyer des images, créez plutôt un rôle personnalisé avec edit_posts et upload_files.
Non, pas au départ. Gardez une validation éditoriale. Réservez la publication directe aux auteurs réguliers, fiables et déjà intégrés à votre ligne éditoriale.
Seulement si vous leur faites confiance. Les images doivent être optimisées, légitimes, bien nommées et accompagnées d’un texte alternatif. Sinon, demandez-les séparément lors de la soumission.
Parce que ces fichiers appartiennent au core WordPress. Une mise à jour écrasera vos changements. Utilisez plutôt des hooks, un mu-plugin ou les capacités natives WordPress.
Oui. Pour des contributions occasionnelles, une page de soumission, un formulaire ou un Google Doc public peut suffire. Créez un compte WordPress seulement pour les auteurs réguliers.
Validez le sujet avant rédaction, imposez des consignes claires, limitez les liens, exigez des sources fiables, refusez le contenu sponsorisé déguisé et gardez le droit de modifier ou refuser l’article.
Hung est une comédie diffusée depuis le début de l’été sur HBO.
Elle raconte les aventures de Ray Drecker (Thomas Jane), un coach de basketball dans un lycée dans la banlieue de Detroit qui a du mal à joindre les deux bouts étant donné que sa vie n’est qu’une suite de catastrophes.
Sous-payé (c’est un prof), aigri depuis que sa femme l’a quitté pour vivre avec un dermatologue, sa maison brûle à cause de l’installation électrique qui n’est plus aux normes. Il perd alors la garde de ses enfants.
Pour se remonter le moral et repartir sur de nouvelles bases, Ray intègre un séminaire de marketing pour devenir millionnaire où il retrouvera Tanya, ancien amour et apprentie poète.
Il y trouvera surtout l’idée qui inversera le cours des choses : un physique avantageux dont il se servira afin de s’en sortir. Il pense alors à vendre son corps en ayant recours à la prostitution pour payer ses dettes.