- Statut : non résolu
- Ce sujet contient 21 réponses, 10 participants et a été mis à jour pour la dernière fois par
akira159000, le il y a 10 années et 4 mois.
-
AuteurMessages
-
3 février 2007 à 13 h 34 min #450430
Ma configuration WP actuelle
– Version de WordPress : 2.0.7
– Thème utilisé : perso adaptation de aquafluid
– Plugins en place : lightbox
– Nom de l’hebergeur : freeBonjour,
comme j’ai déjà vu des posts sur le sujet je vous livre ma méthode pour restreindre l’accès d’une catégorie aux seuls membres connectés.
problématique : je veux une catégorie pour laquelle on puisse voir uniquement la liste des articles qu’elle contient et un résumé (ou rien) du contenu. la lecture du post ne doit être possible que si on est connecté et qu’on possède le niveau requis (auteur Ok, contributeur NOK par exemple)la modification porte sur 3 classes de votre thème :
date.php /* pour les archives */ et single.php /* pour les articles */
/* la modif est identique pour ces 2 fichiers */
category-X.php (ou X est le numéro de la catégorie à filtrer)le principe :
créer une catégorie dédiée et noter son ID (par ex :12)
créer un fichier category-12.php et copier dedans le contenu de category.php
modifier le code pour n’afficher que le titre et le résumé (excerpt) si le user n’est pas autorisécomment faire :
après la ligne foreach ajouter :
ID) ) {?>
cette ligne autorise l’affichage pour les users connectés ayant la capacite publish_posts
pour + d’infos sur les capacités voir iciau milieu le code ne change pas : affichage normal
avant la ligne endforeach ajouter le code qui sera exécuté si le user n’est pas autorisé
le code pour afficher ce que vous voulez (voir ci dessous)
la modification est quasi identique pour les 2 autres fichiers seul le test change : on teste en + la catégorie
ID)) { ?>Attention !!! sauvegardez vos fichiers avant toute modification : il est facile de se planter de ligne…
vous pouvez voir le resultat sur mon site categorie Espace Membres article : test espace membres
en espérant que ce code soit utile aux membres de ce forum, n’hésitez pas a me faire part de vos impressions, critiques, améliorations etc..
voici le code de date.php et single.php :
<?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
<?php if ( !in_category(12) || current_user_can('publish_posts', $post->ID)) { ?>
<div class="post">
<h2 class="post-title"> <a href="<?php the_permalink() ?> » rel= »bookmark » title= »Permanent Link: <?php the_title(); ?>« ><?php the_title(); ?></a> </h2>
<div class="post-content"><?php the_content('Lire la suite »'); ?> </div>
<p class="post-info">
<em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em> <?php edit_post_link(); ?></p>
</div>
<?php } else { ?>
<div class="post">
<h2 class="post-title"> <?php the_title(); ?> </h2>
<div class="post-content"><?php the_excerpt(); ?></div>
<p class="post-info"> <em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em> <?php edit_post_link('modifier'); ?></p>
<h3 align="center">Pour lire cet article vous devez vous connecter au préalable.</h3>
</div>
<?php } ?>
<?php endforeach; else: ?>et celui de category-12.php :
<?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
<?php if ( current_user_can('publish_posts', $post->ID) ) {?>
<div class="post">
<h2 class="post-title">
<a href="<?php the_permalink() ?> » rel= »bookmark » title= »Permanent Link: <?php the_title(); ?>« ><?php the_title(); ?></a>
</h2>
<div class="post-content"> <?php the_content('Lire la suite »'); ?> </div>
<p class="post-info">
<em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em>
<?php edit_post_link(); ?></p>
</div>
<?php } else { ?>
<div class="post">
<h2 class="post-title"> <?php the_title(); ?> </h2>
<div class="post-content"><?php the_excerpt(); ?></div>
<p class="post-info"> <em><?php the_time('l d M Y'); ?></em> | <em class="user"><?php the_author_posts_link() ?></em> | <em class="cat"><?php the_category(', ') ?></em> <?php edit_post_link('modifier'); ?></p>
<h3 align="center">Pour lire cet article vous devez vous connecter au préalable.</h3>
</div>
<?php } ?>
<?php endforeach; else: ?>3 février 2007 à 20 h 40 min #591166Sympa mais c’est pas le plus simple.
Je déplace dans truc et astuces 🙂
4 février 2007 à 10 h 28 min #591168AmO wrote:Sympa mais c’est pas le plus simple.salut Amo,
effectivement ca va mieux dans trucs et astuces..
j’ai écrit ce code (que je ne trouve pas trop compliqué meme si j’ai mis beaucoup de bla bla dans mon post pour expliquer) parcque justement je ne trouvais pas de solution à mon problème, peux tu me donner ta solution pour ma culture perso stp ? 🙂
merci..4 février 2007 à 13 h 37 min #591169Pour la catégorie 12, et les utilisateurs de niveau 5
5 ) : ?>
Blabla
Pas le droit
Autre catégorie4 février 2007 à 18 h 22 min #591167effectivement, ca evite de créer une category specifique et je reconnais que l’usage de $user_level pour tester est plus propre… je debute sous wp, j’ai encore bcp a apprendre 😕
merci de ta réponse en tous cas 😉4 février 2007 à 19 h 40 min #591170On peut aussi faire la même chose avec $user_ID pour ne definir que les utilisateurs enregistrés.
4 février 2007 à 21 h 33 min #591171bway > Il existe pleins d’autre possibilités 😉
jpicot > Tout le monde est la pour apprendre, ca tombe bien.
9 février 2007 à 16 h 06 min #591172Je vais tester cela 🙂 par contre je voulais savoir est il possible de faire cela pour certains membres ? autre que par cathegorie ou niveau de level en faite ?
merci18 février 2007 à 13 h 43 min #591173Bonjour, je me permets de rebondir sur ce post pour poser ma petite question. En fait c’est à peu près la même chose, mais n’y connaissant rien au php (je sais bidouiller, pas créer, et c’est pas mon métier lol, je suis graphiste), je préfère poser la question.
En fait j’aimerai qu’un utilisateur ne puisse voir que les billets que d’UNE seule catégorie! Est-ce possible?
Merci beaucoup
18 février 2007 à 21 h 25 min #591174voici une solution en testant le nom du user avec la variable $user_login, a combiner selon les besoins 🙂
Code: php
afficher la page
ne pas afficher
pour que le user toto ne voit que les billets de la categorie 12
les visiteurs non connectes ne voient rien, toto voit la categorie 12 uniquement, les autres voient toutes les catégoriesCode: php
en esperant que cet exemple reponde a vos questions 😉
19 février 2007 à 2 h 07 min #591175pour que le user toto ne voit que les billets de la categorie 12
les visiteurs non connectes ne voient rien, toto voit la categorie 12 uniquement, les autres voient toutes les catégoriesCode: php
en esperant que cet exemple reponde a vos questions 😉
Pour les visiteurs, ce n’est pas trop grave, le blog est totalement fermé. J’ai un peu détourné le rôle premier de wordpress pour créer un petit espace de travail virtuel pour notre collectif. Pour pouvoir débattre sur les projets en cours et garder une trace. (en changeant tout le design etc…)
Et c’est dans l’optique d’amener des clients à venir poster un commentaire sur leurs projets, et de voir l’avancée des travaux, de leur fournir les fichiers pour l’impression, etc…, que j’aimerai les empêcher d’avoir accès à tout le blog. Ils ne pourront voir que la catégorie qui porte leur nom. Point 🙂
Malheureusement le code fait planter tout le bazar…
Ou dois-je incorporer le code? Dans plusieurs pages? index? single?J’ai un peu tout essayer pour être franc et chaque fois j’ai une erreur à la dernière ligne de la page…
Une idée?
19 février 2007 à 8 h 07 min #591176tu ne dois pas le mettre au bon endroit, essaie d’inserer le code dans single.php de ton theme après cette ligne :
le code pour afficher le post
le code si on n’affiche pas le post
attention a bien positionner les balises fermantes ca peut aussi etre ca qui te fait planter
au début php + wordpress nécessitent une période d’adaptation pendant laquelle on ne comprend pas grand chose, puis ca s’eclaire en lisant la doc et en parcourant le forum donc tu vas y arriver 😎19 février 2007 à 12 h 17 min #591177J’ai toujours un message d’erreur
19 février 2007 à 15 h 44 min #591178Puisque j’ai été renvoyée ici… 😋
En fait j’avais lu ce post mais je pensais qu’il ne répondait pas tout à fait à mes besoins et comme je n’ai pas la possibilité d’essayer avant quelques jours…
Je voulais que les utilisateurs n’aient pas du tout accès à l’admin et je ne sais pas si c’est possible.
Exemple concret:
Mr Machin arrive sur le blog et veut accéder à la catégories « Adresses » qui est une catégorie privée.
– Soit il clique sur la catégorie dans la sidebar et une pop-up s’affiche demandant login/password.
– Soit il entre login + password sur la sidebar puis connexion
dans les 2 cas il est redirigé automatiquement sur la page sur laquelle il s’est identifié mais version « connecté ».Poussib’ ? Pô poussib’ ?
Merci.
19 février 2007 à 22 h 29 min #591179désolé, je n’avais pas bien compris ta demande 😋
je ne connais pas de solution directe, mais les experts de ce forum ont peut être une idée ?
je pense qu’il faudrait intégrer le contrôle de l’utilisateur dans la page à afficher et ne pas passer par le module d’identification :
si l’utilisateur n’est pas connecté, afficher la demande d’identification dans la page et réafficher celle-ci apres controle. -
AuteurMessages
- Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.