- Statut : non résolu
- Ce sujet contient 6 réponses, 4 participants et a été mis à jour pour la dernière fois par
Comme une image, le il y a 13 années et 2 mois.
-
AuteurMessages
-
11 janvier 2012 à 8 h 49 min #504096
Bonjour à tous,
J’ai fait quelques recherches internet et sur ce forum, sans doute pas assez, mais je n’ai pas trouvé la réponse à mon besoin qui me semblait pourtant assez simple.
Je souhaite rendre une partie de mon corpus d’articles privés. Le principe serait le suivant :
1- Chaque article serait déclaré public ou privé individuellement, en utilisant le mécanisme standard WordPress (case à cocher « privé » activable sur chaque note)
2- Les articles privés ne seraient accessibles qu’aux personnes inscrites dont j’aurais validé l’inscriptionIl me semble que dans le mécanisme WP standard, c’est là que le bât blesse : le contenu privé est accessible dès lors qu’on est abonné, mais il n’y a pas de mécanisme de validation des inscriptions (ou alors, il m’a échappé).
Il faudrait, en quelque sorte, s’inscrire et se trouver dans un état intermédiaire qui ne semble pas exister sur WP.Idéalement, l’inscription se ferait à l’aide d’un formulaire dans lequel l’utilisateur disposerait d’un champ pour expliquer ses motivations à s’inscrire.
Merci de vos suggestions !
PS : j’ai testé quelques extensions dont Private! WordPress Access Control Manager qui semblait assez complète mais ne semble finalement pas répondre à mon besoin, ou alors j’ai mal saisi…
11 janvier 2012 à 9 h 48 min #809789absolute privacy est ton ami est fait exactement cela 🙂
11 janvier 2012 à 9 h 52 min #809790Je crois que j’étais tombé sur un billet où tu proposais ce plugin, et que je l’avais essayé et que ça ne convenait pas… Je vais vérifier ça et je reviens vers toi si j’ai des objections !
Merci en tout cas de ta proposition.11 janvier 2012 à 9 h 57 min #809791Les articles privés ne sont pas protégés en accès, par défaut, ils sont simplements « invisible »
Ce que j’ai fait pour un blog, où j’avais un besoin équivalent
– créé un custom post type spécifique
– créé une capacité supplémentaire, pour les membres enregistrés, et créé un rôle supplémentaire, avec cette capacité en plus des autres.
– dans tous les templates (index, single, archives) rajouté une condition « if (current_user_can(‘lacapacité’) { le blabla pour afficher l’article ou l’excerpt) }
– dans index.php fait un query_posts pour avoir les deux types de custom post typePour les motivations à s’inscrire, regarde du côté des plugins d’inscription, il y en a pas mal. Cela peut être notamment les plugins qui rajoutent un champ spécifique à l’inscription.
11 janvier 2012 à 9 h 58 min #809792Et les solutions du style S2member?
11 janvier 2012 à 21 h 38 min #809793Hello !
Merci de vos propositions diverses !
@ Aphrodite » Je me souviens ce qui ne va pas avec l’extension que tu proposes : ça ne privatise qu’un ensemble de pages (et moi j’avais besoin de privatiser des notes indépendamment les unes des autres)
@ Guy » Plutôt orienté « accès payant », je cherchais quelque chose de plus light
@ LdL » Un peu trop élaborée comme solution, je voulais quelque chose de plus simple à mettre en œuvre pour moi, en développant le moins possible (idéalement : pas du tout).J’ai trouvé, je crois, la solution qui convient à mon besoin. J’ai installé l’extension Members avec laquelle :
1/ j’ai autorisé aux abonnés les capabilities read_private_post et read_private_page
2/ j’ai permis l’inscription à mon site avec le rôle par défaut « unapproved member » (créé par l’extension, je pense)Il ne me reste plus qu’à trouver l’extension suggérée par LdL pour motiver les gens à s’enregistrer, et hop, le tour est joué !
(Les billets « privés » sont bien filtrés du flux RSS)
5 février 2012 à 21 h 03 min #809788Quelques petites infos pour aider ceux qui voudraient suivre ma voie.
J’ai fait quelques modifications pour donner plus de visibilité aux billets privés, y compris dans le flux RSS, en personnalisation mon fichier functions.php ainsi :/* Gestion des utilisateurs ayant droit d’accès au contenu privé */
function cui_see_private( $where ) {
$where = preg_replace(
« /= *’publish’/ », « IN (‘publish’, ‘private’) », $where );
return $where;
}
function cui_see_private_even_in_feeds( $where ) {
if ( !$wp_query )
global $wp_query;
if (($wp_query->is_feed) OR (( is_user_logged_in() AND (current_user_can(‘read_private_posts’)))))
{
$where = preg_replace(
« /= *’publish’/ », « IN (‘publish’, ‘private’) », $where );
}
return $where;
}
if ( is_user_logged_in() ) {
if(current_user_can(‘read_private_posts’)){
// get_next_post
add_filter( ‘get_previous_post_where’, ‘cui_see_private’ );
add_filter( ‘get_next_post_where’, ‘cui_see_private’ );
}
}
add_filter( ‘posts_where’, ‘cui_see_private_even_in_feeds’ );
// Filtrage RSS pour l’affichage partiel des billets privés
function cui_filtrage_content_rss( $content ) {
/* If the current user can view the post, return the post content. */
// return get_the_ID() . « + » . get_post_status( get_the_ID() ) ;
if ( get_post_status( get_the_ID() ) == ‘private’)
return members_get_post_error_message( get_the_ID() );
return $content;
}
add_filter( ‘the_content_feed’, ‘cui_filtrage_content_rss’ );
add_filter( ‘comment_text_rss’, ‘cui_filtrage_content_rss’ );Pour info, la phrase qui s’affiche alors dans le flux RSS est paramétrée par l’extension « Members »
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.