Privatisation partielle de mon site (Créer un compte)

  • Statut : non résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #504096
    Comme une image
    Participant
    Maître WordPress
    2493 contributions

    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’inscription

    Il 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…

    #809789
    Aphrodite
    Participant
    Maître WordPress
    4739 contributions

    absolute privacy est ton ami est fait exactement cela 🙂

    #809790
    Comme une image
    Participant
    Maître WordPress
    2493 contributions

    Je 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.

    #809791
    Lumiere de Lune
    Participant
    Maître WordPress
    20531 contributions

    Les 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 type

    Pour 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.

    #809792
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Et les solutions du style S2member?

    #809793
    Comme une image
    Participant
    Maître WordPress
    2493 contributions

    Hello !

    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)

    #809788
    Comme une image
    Participant
    Maître WordPress
    2493 contributions

    Quelques 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 »

7 sujets de 1 à 7 (sur un total de 7)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.