J'ai plusieurs messages non publiés sur mon site Wordpress et j'essaie de le rendre accessible aux utilisateurs normaux (qui ne sont pas connectés) en utilisant les slugs de publication normaux ( site.com/post-here
). Je comprends que ce n'est peut-être pas la meilleure pratique, mais pour mon objectif particulier, cela doit être fait.
J'ai essayé d'ajouter l'extrait de code suivant dans mon functions.php
fichier:
function enable_view_drafts() {
$role = get_role( 'subscriber' );
$role->add_cap( 'read_private_posts' );
$role->add_cap( 'edit_posts' );
}
add_action( 'after_setup_theme', 'enable_view_drafts');
J'ai également essayé le init
crochet au lieu de after_setup_theme
. Pas de chance.
D'après ce que je comprends, les modifications apportées aux rôles sont enregistrées dans la base de données et ne doivent donc être effectuées qu'une seule fois. C'est pourquoi j'utilise after_setup_theme
hook pour appeler la fonction.
Mais lorsque j'essaie d'accéder à la page en tant qu'utilisateur normal, une page 404 s'affiche au lieu d'afficher le contenu du message. J'ai également essayé de charger l'URL de prévisualisation ( site.com/?p=212&preview=true
) mais cela n'a pas fonctionné non plus.
Ce sont mes suppositions:
- l'utilisateur normal n'a pas assez
caps
pour lire le brouillon. - tester et afficher les brouillons de messages sur le front-end n'est possible pour aucun utilisateur (y compris les administrateurs).
Quels changements dois-je apporter pour accomplir ce que j'essaie de faire? Si ce n'est pas possible, quelles solutions alternatives proposez-vous?
Remarque: je ne recherche pas de solutions basées sur des plugins.