Conditionner passage de page par un Captcha
tridam23
Messages postés
104
Statut
Membre
-
elgazar Messages postés 5841 Date d'inscription Statut Membre Dernière intervention -
elgazar Messages postés 5841 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis debutant sous wordpress
1. est il possible de faire une page de login + creation de compte avant acces sur le site. style facebook???
2. est il possible de mettre un captcha avant chaque changement de page? Pour passer d'une page à l'autre j'aimerais que cela soit conditionné par la réponse à une question comme un captcha
Merci de votre aide
je suis debutant sous wordpress
1. est il possible de faire une page de login + creation de compte avant acces sur le site. style facebook???
2. est il possible de mettre un captcha avant chaque changement de page? Pour passer d'une page à l'autre j'aimerais que cela soit conditionné par la réponse à une question comme un captcha
Merci de votre aide
A voir également:
- Conditionner passage de page par un Captcha
- Impossible de supprimer une page word - Guide
- Passage qwerty azerty - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Numéro de page word - Guide
- Page d'accueil - Guide
2 réponses
bonjour
1. oui mais il faut un peu bidouiller le code du thème et utiliser des marqueurs conditionnels pour afficher une page de connexion quand les utilisateurs ne sont pas identifiés (et la page normale quand ils sont identifiés) par contre niveau référencement ce sera un plombage en règle
2. en théorie, il suffit de placer un captcha dans toutes les div articles puis quand la page s'ouvre, il verra la page de connexion si il n'est pas identifié ou le captcha ( puis le contenu) dans le cas contraire.
1. oui mais il faut un peu bidouiller le code du thème et utiliser des marqueurs conditionnels pour afficher une page de connexion quand les utilisateurs ne sont pas identifiés (et la page normale quand ils sont identifiés) par contre niveau référencement ce sera un plombage en règle
if ( is_user_logged_in() ) {
le contenu de la div article
} else {
<?php wp_login_form(); ?> // le formulaire de connexion de wp
}
2. en théorie, il suffit de placer un captcha dans toutes les div articles puis quand la page s'ouvre, il verra la page de connexion si il n'est pas identifié ou le captcha ( puis le contenu) dans le cas contraire.
ah ok je comprends mieux pourquoi tu n'y arrivais pas, ton index utilise plusieurs fichiers pour s'afficher donc c'est difficile de mettre le code sans voir la totalité, cela dit tu peux essayer de mettre le code dans wp-blog-header.php en espérant qu'il ne soit pas découper en plusieurs parties
tu utilise quel thème ?
tu utilise quel thème ?
theme Themify Peak
mon wp blog header
mon wp blog header
<?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( !isset($wp_did_header) ) { $wp_did_header = true; // Load the WordPress library. require_once( dirname(__FILE__) . '/wp-load.php' ); // Set up the WordPress query. wp(); // Load the theme template. require_once( ABSPATH . WPINC . '/template-loader.php' ); }
voila pourquoi je ne fais généralement pas de support pour les thèmes payants car leurs codes sont complexifiées pour éviter qu'on leur pique mais du coup, impossible de faire une modification simplement.
je te dirais bien de regarder dans template-loader pour voir si tu vois
je te dirais bien de regarder dans template-loader pour voir si tu vois
<?php if ( have_posts() ) : ?>dans une div puis de placer le code autour comme ci
<?php /** * The main template file * * This is the most generic template file in a WordPress theme * and one of the two required files for a theme (the other being style.css). * It is used to display a page when nothing more specific matches a query. * E.g., it puts together the home page when no home.php file exists. * * @link http://codex.wordpress.org/Template_Hierarchy * * @package WordPress * @subpackage Twenty_Sixteen * @since Twenty Sixteen 1.0 */ get_header(); ?> // début de la condition <?php if ( is_user_logged_in() ) { ?> //début de la div article affichée aux inscrits, partie originale du code <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php if ( have_posts() ) : ?> <?php if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1> </header> <?php endif; ?> <?php // Start the loop. while ( have_posts() ) : the_post(); /* * Include the Post-Format-specific template for the content. * If you want to override this in a child theme, then include a file * called content-___.php (where ___ is the Post Format name) and that will be used instead. */ get_template_part( 'template-parts/content', get_post_format() ); // End the loop. endwhile; // Previous/next page navigation. the_posts_pagination( array( 'prev_text' => __( 'Previous page', 'twentysixteen' ), 'next_text' => __( 'Next page', 'twentysixteen' ), 'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>', ) ); // If no content, include the "No posts found" template. else : get_template_part( 'template-parts/content', 'none' ); endif; ?> </main><!-- .site-main --> </div><!-- .content-area --> //fin de la div affichés aux inscrits //début de la condition pour les utilisateurs non loggé (partie du code à ajouter) <?php } else { $args = array( 'echo' => true, 'redirect' => 'http://localhost/sitetest/', 'label_log_in' => __( 'Log in' ), 'form_id' => 'login', 'label_username' => __( 'Username' ), 'label_password' => __( 'Password' ), 'label_remember' => __( 'Remember Me' ), 'id_username' => 'user_login', 'id_password' => 'user_pass', 'id_submit' => 'wp-submit', 'remember' => true, 'value_username' => NULL, 'value_remember' => true ); ?> <div id="container" class=""> <div id="content" > <?php wp_login_form($args); ?> </div></div> <a href="<?php bloginfo('url');?>/wp-login.php?action=register">Inscription</a> <a href="<?php bloginfo('url');?>/wp-login.php?action=logout">Desinscription</a> <?php } ?> // fin de la condition // affichage de la sidebar et du footer dans les deux cas <?php get_sidebar(); ?> <?php get_footer(); ?>
ce bout de code je le met ou?avec ce code la page de connexion sera la première page (index) du site ?
pour le point 2, je vas tente
tu peux en outre cibler uniquement certaines, pages, certaines catégories ou certains articles selon leur id, leur motclé, la date, l'auteur, etc
pour comprendre les marqueurs conditionnels, regarde ici
et comment faire pour que la page de login soit en page d'acceuil
genre tu te connecter avant d'avoir accès au site web, un peu comme facebook
que faire pour mettre la login de wp en page d'acceuil
en gros, tu copie/colle le code de page.php dans un nouveau fichier que tu appelles page-accueil.php que tu mettras au même niveau dans le dossier
avant le code de page-accueil.php , tu insères ces lignes
ensuite tu enlèves ce que tu veux dans le code, si tu veux n'avoir qu'un formulaire de connexion, tu dois garder le strict minimum ce qui se résume généralement à cela
j'ai gardé le header et le footer mais ce n'est pas obligatoire selon le thème que tu utilises et j'ai simplement rajouté le formulaire de connexion à la place du contenu.
Une fois ton modèle de page défini, il suffit de créer une page vide (mets seulement le titre accueil) puis de choisir dans les attributs de pages dans la colonne de droite de la page d'édition le modèle page-accueil et enfin d'aller dans le menu réglages=>lecture et de mettre ta page comme page d'accueil
ps: pour raison que j'ignore le forum ne prends pas le second astérisque dans le code de template name, pense à bien l'entourer avec /* et */
Qu'ai je mal fait???