wp_header() et wp_footer() ignorés (Créer un compte)

  • WordPress :5.5
  • Statut : non résolu
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #2360304
    mumu51
    Participant
    Padawan WordPress
    82 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.4
    • Thème utilisé : Je le fais moi-même
    • Extensions en place : Askimet et Caldera Forms
    • Nom de l’hébergeur : En local pour le moment

    Problème(s) rencontré(s) :

    Je conçois un thème WordPress spécial traiteur pour un client, et lorsque j’inclus un contenu dans page.php à l’aide de get_template_part() et que je me rends sur la page concernée, ma partie header et footer se perdent en cours de route. Mais attention : pas tout le temps !

    Depuis la page d’accueil (formulaire) ou chaque page (bouton “Devis sur mesure”), le visiteur est invité à choisir un type d’événement, pour ensuite parvenir à un formulaire à étapes un peu plus long.
    À partir de là, je récupère bien l’événement choisi, mais ma partie footer lit un contenu que j’ai mis à jour depuis belle lurette (problème de cache ?) et ma partie header – comme je le dis dans le titre ; est complètement ignorée.

    Ce que je ne parviens pas à comprendre, c’est que – outres l’éventuelle bêtise que j’ai pu faire (et faudrait m’expliquer où car je ne vois pas…), WordPress n’inclue même pas la balise style dans la partie <head></head> que j’ai prévu dans mon fichier functions.php…

    function sj_customize_colors_css(){
        ?>
        <style>
            :root {
              --sj-primary: <?= get_theme_mod( 'sj-colors-callout-primary', '#FF5200' ); ?>;
              --sj-secondary: <?= get_theme_mod( 'sj-colors-callout-secondary', '#4CE0B3' ); ?>;
              --sj-third: <?= get_theme_mod( 'sj-colors-callout-third', '#23022E' ); ?>;;
              --sj-grey: #777777;
              --sj-box-grey: #C4C4C4;
              --sj-grey-light: #E5E5E5;
              --sj-gradient: linear-gradient(270.01deg, <?= get_theme_mod( 'sj-colors-callout-primary', '#FF5200' ); ?> 1.58%, rgba(255, 82, 0, 0.3) 102.25%);
              --sj-mask: rgba(35, 2, 46, 0.4);
              --sj-font-family-primary: 'Playfair Display', serif;
              --sj-font-family-secondary: 'Nunito', sans-serif;
            }
        </style>
        <?php
    }
    
    function sj_register_assets () {
    	wp_register_style( 'bootstrap', get_template_directory_uri() . '/assets/bootstrap/css/bootstrap.min.css');
    	wp_register_script( 'bootstrap', get_template_directory_uri() . '/assets/bootstrap/js/bootstrap.bundle.min.js', ['jquery'], false, true);
    	if(!is_customize_preview()){
    		wp_deregister_script('jquery');
    		wp_register_script( 'jquery', 'https://code.jquery.com/jquery-3.5.1.min.js', [], false, true);
    	}
        wp_enqueue_style( 'bootstrap' );
        wp_enqueue_script( 'bootstrap' );
    
    	if(is_page('Devis')){
    		wp_register_script( 'devis', get_template_directory_uri() . '/assets/js/register.js', ['jquery'], false, true);
    		wp_enqueue_script( 'devis' );
    		wp_deregister_script('jquery');
      		wp_register_script( 'jquery', 'https://code.jquery.com/jquery-3.4.1.min.js', [], false, true);
            wp_enqueue_script( 'jquery' );
    	}
    
        if(is_page('Galerie')){
            wp_register_style( 'fancybox', get_template_directory_uri() . '/assets/fancybox/jquery.fancybox.min.css');
            wp_register_script( 'fancybox', get_template_directory_uri() . '/assets/fancybox/jquery.fancybox.min.js', ['jquery'], false, true);
            wp_enqueue_style( 'fancybox' );
            wp_enqueue_script( 'fancybox' );
        }
    }
    
    /*...*/
    
    add_action( 'wp_head', 'sj_customize_colors_css');
    add_action('wp_enqueue_scripts', 'sj_register_assets');
    Functions.php

     

    Voici pour commencer ma front-page.php

    <?php get_header() ?>
    
    <header>
    	<?php
    		if(get_theme_mod('basic-cover-callout-display') === "Image"){ get_template_part('templates-parts/header/header','background'); }
    		else{ get_template_part('templates-parts/header/header','carousel');} 
    	?>
    	<div class="sj-header-links position-absolute d-none d-md-block">
    		<div>F</div>
    	</div>
    </header>
    
    <div class="container">
    	<div class="d-flex flex-column flex-md-row justify-content-between">
    		<div class="col-12 col-md-6">
    			<?php get_template_part('templates-parts/devis/devis','home'); ?>
    		</div>
    		<div class="col-12 col-md-6 d-flex align-items-center py-5">
    			<div class="sj-svg-decor">
    				<svg width="112" height="112" viewBox="0 0 112 112" fill="none" xmlns="http://www.w3.org/2000/svg">
    					<rect width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect y="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="44" y="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="88" y="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect y="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="44" y="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="88" y="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    				</svg>
    			</div>
    			<div class="pl-md-5 position-relative">
    				<h2 class="sj-text-primary">Prestation de services</h2>
    				<p class="lead mb-5">Un banquet à organiser ?</p>
    				<div class="d-flex flex-column my-3">
    					<h4 class="sj-text-primary"><?= get_theme_mod('basic-know-callout-title-one').'<br/>'; ?></h4>
    					<p><?= get_theme_mod('basic-know-callout-description-one'); ?></p>
    				</div>
    				<div class="d-flex flex-column my-3">
    					<h4 class="sj-text-primary"><?= get_theme_mod('basic-know-callout-title-two').'<br/>'; ?></h4>
    					<p><?= get_theme_mod('basic-know-callout-description-two'); ?></p>
    				</div>
    				<div class="d-flex flex-column my-3">
    					<h4 class="sj-text-primary"><?= get_theme_mod('basic-know-callout-title-three').'<br/>'; ?></h4>
    					<p><?= get_theme_mod('basic-know-callout-description-three'); ?></p>
    				</div>
    			</div>
    		</div>
    	</div>
    </div>
    
    <div class="container-fluid sj-parallax text-center py-5 mb-5">
    	<div class="d-flex flex-column mb-5">
    		<h1 class="cover-heading text-white mb- pt-5 display-3"><?= get_bloginfo( 'name' ); ?></h1>
    		<p class="lead text-white mb-4">sur les réseaux sociaux</p>
    	</div>
    	<a href="#" class="btn btn-primary btn-circle mt-5">F</a>
    </div>
    
    <div class="container sj-container-scroll-anim py-5 mb-5">
    	<div class="d-flex flex-column flex-md-row justify-content-between">
    		<div class="col-12 col-md-6 d-flex">
    			<img src="<?= wp_get_attachment_url(get_theme_mod('basic-about-callout-image-one')); ?>" class="sj-picture-anim sj-picture-up mr-4" width="220" height="410" />
    			<img src="<?= wp_get_attachment_url(get_theme_mod('basic-about-callout-image-two')); ?>" class="sj-picture-anim sj-picture-down ml-4" width="220" height="410" />
    		</div>
    		<div class="col-12 col-md-6 d-flex">
    			<div class="pl-md-5 position-relative d-flex flex-column justify-content-center">
    				<h2 class="sj-text-primary"><?= get_bloginfo( 'name' ); ?></h2>
    				<p class="lead mb-5">Le mot du chef</p>
    				<p><?= get_theme_mod('basic-about-callout-text').'<br/>'; ?></p>
    			</div>
    			<div class="sj-svg-decor">
    				<svg width="112" height="112" viewBox="0 0 112 112" fill="none" xmlns="http://www.w3.org/2000/svg">
    					<rect width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect y="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="44" y="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="88" y="44" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect y="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="44" y="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    					<rect x="88" y="88" width="24" height="24" fill="#4CE0B3" fill-opacity="0.2"/>
    				</svg>
    			</div>
    		</div>
    	</div>
    </div>
    
    <?php get_footer();
    front-page.php

     

    Ensuite, le code contenu dans devis-home.php (qui est bien dans le dossier devis, dans templates-parts) :

    <form id="formules-form" method="POST" action="<?= home_url('/devis'); ?>" class="d-flex flex-column sj-form-event py-5">
    	<p class="sj-title mb-4">Choisissez un événement</p>
    	<div class="py-3">
    		<div class="inputGroup">
    			<input class="radio-tools" type="radio" name="evenement" id="anniversaire" value="Anniversaire">
    			<label class="for-checkbox-tools" for="anniversaire">
    				<div class="d-flex align-items-center">
    					<p class="mb-0">Anniversaire</p>
    				</div>
    				<span class="radio-tools-span"></span>
    			</label>
    		</div>
    		<div class="inputGroup">
    			<input class="radio-tools" type="radio" name="evenement" id="bapteme" value="Baptême">
    			<label class="for-checkbox-tools" for="bapteme">
    				<div class="d-flex align-items-center">
    					<p class="mb-0">Baptême</p>
    				</div>
    				<span class="radio-tools-span"></span>
    			</label>
    		</div>
    		<div class="inputGroup">
    			<input class="radio-tools" type="radio" name="evenement" id="banquetpro" value="Banquet professionnel">
    			<label class="for-checkbox-tools" for="banquetpro">
    				<div class="d-flex align-items-center">
    					<p class="mb-0">Banquet professionnel</p>
    				</div>
    				<span class="radio-tools-span"></span>
    			</label>
    		</div>
    		<div class="inputGroup">
    			<input class="radio-tools" type="radio" name="evenement" id="mariage" value="Mariage">
    			<label class="for-checkbox-tools" for="mariage">
    				<div class="d-flex align-items-center">
    					<p class="mb-0">Mariage</p>
    				</div>
    				<span class="radio-tools-span"></span>
    			</label>
    		</div>
    		<div class="inputGroup">
    			<input class="radio-tools" type="radio" name="evenement" id="repastheme" value="Repas à thème">
    			<label class="for-checkbox-tools" for="repastheme">
    				<div class="d-flex align-items-center">
    					<p class="mb-0">Repas à thème</p>
    				</div>
    				<span class="radio-tools-span"></span>
    			</label>
    		</div>
    		<div class="inputGroup">
    			<input class="radio-tools" type="radio" name="evenement" id="autre" value="Événement">
    			<label class="for-checkbox-tools" for="autre">
    				<div class="d-flex align-items-center">
    					<p class="mb-0">Autre</p>
    				</div>
    				<span class="radio-tools-span"></span>
    			</label>
    		</div>
    	</div>
    	<div class="d-flex mt-4">
    		<button type="submit" name="btn_devis_start" id="btn_devis_start" class="sj-btn sj-btn-secondary btn-next">Commencer mon devis</button>
    	</div>
    </form>
    devis-home.php

     

    Ma page page.php :

    <?php
    /**
     * La page affichant les différents posts, en l'occurence, les divers banquets organisés par le traiteur
     *
     * @package sylviejeannesson
     * @since sylviejeannesson 1.0
     */
    session_start();
    get_header();
    ?>
    
    <?php
    
    	if(!is_page('Devis')){
    		get_template_part( 'templates-parts/header/header', 'page' );
    	}
    
    	if(!is_front_page() || ! is_page('Contacts') || ! is_page('Devis')){
    
    		while ( have_posts() ) :
    			the_post();
    
    			get_template_part( 'template-parts/content/content', 'page' );
    
    		endwhile;
    	
    	}
    
    	if(is_page('À propos')){
    
    		get_template_part( 'templates-parts/content/content', 'presentation' );
    
    	}
    
    	if(is_page('Galerie')){
    
    		get_template_part( 'templates-parts/content/content', 'galerie' );
    
    	}
    
    	if(is_page('Contacts')){
    
    		get_template_part( 'templates-parts/content/content', 'contacts' );
    
    	}
    
    	if(is_page('Devis')){
    
    		if(isset($_POST['evenement'])){
    
    			$_SESSION['event'] = $_POST['evenement'];
    			get_template_part('templates-parts/devis/devis','devis');
    
    		}
    
    		else{ get_template_part('templates-parts/devis/devis','choice'); } 
    	}
    
    get_footer();
    page.php

     

    Puis le contenu de devis.php, lorsque j’ai sélectionné un événement :

    <form method="POST" id="devisform" action="<?= get_template_directory_uri() . '/inc/register-devis.php'; ?>" class="my-5 pt-md-5">
    	<div class="d-flex flex-column justify-content-between mx-auto">
    		<ul class="nav d-flex align-items-center mb-4">
    			<div class="d-flex align-items-center justify-content-start sj-steps-loaded w-50">
    				<li id="stepOne" class="nav-item sj-nav-item-active d-flex align-items-center">
    					<a class="d-flex align-items-center justify-content-center mx-auto mr-2 mr-md-3 sj-step-num text-center nav-link disabled active active_tab" id="event_details" data-toggle="pill">
    						1
    					</a>
    					<span class="sj-step ml-2">Événement</span>
    				</li>
    			</div>
    			<div class="d-flex align-items-center justify-content-end sj-steps w-50">
    				<li id="stepTwo" class="nav-item d-flex align-items-center">
    					<a class="d-flex align-items-center justify-content-center mx-auto mr-2 mr-md-3 sj-step-num text-center nav-link disabled inactive_tab" id="convives_details" data-toggle="pill">
    						2
    					</a>
    					<span class="sj-step ml-2">Convives</span>
    				</li>
    				<li id="stepThree" class="nav-item d-flex align-items-center">
    					<a class="d-flex align-items-center justify-content-center mx-auto mr-2 mr-md-3 sj-step-num text-center nav-link disabled inactive_tab" id="budget_details" data-toggle="pill">
    						3
    					</a>
    					<span class="sj-step ml-2">Budget</span>
    				</li>
    				<li id="stepFour" class="nav-item d-flex align-items-center">
    					<a class="d-flex align-items-center justify-content-center mx-auto mr-2 mr-md-3 sj-step-num text-center nav-link disabled inactive_tab" id="services_details" data-toggle="pill">
    						4
    					</a>
    					<span class="sj-step ml-2">Services</span>
    				</li>
    				<li id="stepFive" class="nav-item d-flex align-items-center">
    					<a class="d-flex align-items-center justify-content-center mx-auto sj-step-num text-center nav-link disabled inactive_tab" id="devis_details" data-toggle="pill">
    						5
    					</a>
    					<span class="sj-step ml-2">Coordonnées</span>
    				</li>
    			</div>
    		</ul>
    		<div class="progress sj-progress mb-5">
    			<div class="progress-bar active" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
    		</div>
    		<div id="GenerateForm" class="container">
    			<?php get_template_part('templates-parts/devis/devis','form'); ?>
    		</div>
    	</div>
    </form>
    devis.php

     

    Pour le résultat, j’ai joins une image à mon ticket, on voit dans l’inspecteur que mon bootstrap n’est pas chargé, ni même le style, et que mon footer comprend un contenu qui a changé depuis longtemps…

    Je voudrais qu’on me dise : j’ai fais une erreur ou c’est un problème de cache qui me fait tourner en bourrique ?
    Je met le thème à jour et dans une version antérieure, procéder ainsi fonctionnait très bien…
    Le pire c’est que des fois, alors que je n’ai strictement touché à rien du tout, tout rentre dans l’ordre (à l’exception qu’il ne veut pas mettre de container cette fois)…

    J’ai déjà été confronté à ce problème il y a quelque jours, et croyant que ça avait un lien avec un session_start() mal déclaré, j’ai rendu mon problème solutionné, mais visiblement non… Là franchement, je ne sais pas du tout comment régler le souci :/

     

     

     

     

     

     

     

     

    #2360330
    audrasjb
    Participant
    Padawan WordPress
    52 contributions

    Salut,

    Ton fichier header.php contient bien l’appel de l’action <?php wp_head(); ?>  ?

    #2360332
    audrasjb
    Participant
    Padawan WordPress
    52 contributions

    Et même question pour footer.php et l’action <?php wp_footer(); ?>

    #2360334
    mumu51
    Participant
    Padawan WordPress
    82 contributions

    Bonjour,

    Alors oui, mes fichiers possèdent tous deux ces appels.

    header.php

    <!DOCTYPE html>
    <html lang="fr">
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<link rel="stylesheet" href="<?php bloginfo('template_directory');?>/assets/scss/sylviejeannesson.css" />
    	<?php wp_head() ?>
    </head>
    <body <?php body_class(); ?>>
    	<nav class="navbar navbar-expand-lg navbar-light position-fixed w-100">
    		<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler" aria-controls="navbarToggler" aria-expanded="false" aria-label="Toggle navigation">
    			<span class="navbar-toggler-icon"></span>
    		</button>
    		<a class="navbar-brand sje-logo position-absolute" href="<?php echo home_url(); ?>">Logo</a>
    		<div class="collapse navbar-collapse d-md-flex align-items-md-center justify-content-md-between" id="navbarToggler">
    			<?php 
    				if(!is_page('Devis')){
    					wp_nav_menu([
    					'theme_location' => 'header',
    					'container' => false,
    					'menu_class' => 'navbar-nav mx-auto mt-2 mt-lg-0'
    					]); 
    
    					echo '<a href="' . home_url('/devis') . '" class="sj-btn sj-btn-primary position-absolute">Devis sur mesure</a>';
    				}
    				if(is_page('Devis')){
    					echo '<a href="' . home_url('/contacts') . '" class="sj-btn sj-btn-primary position-absolute">Me contacter</a>';
    				}
    			?>
    		</div>
    	</nav>
    	<div id="sylviejeannesson">
    header.php

     

    footer.php

    </div>
    	<footer class="d-flex align-items-center">
    		<div class="d-flex flex-column flex-md-row">
    			<div class="col-12 col-md-3 py-3 px-5 py-md-3 text-left d-flex flex-column">
    				<h2 class="text-white">Sylvie,</h2>
    				<h4>la boîte à délices</h4>
    			</div>
    			<div class="col-12 col-md-6 py-3 px-5 py-md-3 d-flex flex-column">
    				<h4 class="mb-3 text-white">À propos</h4>
    				<?= get_option('sje_theme_author_footer'); ?>
    			</div>
    			<div class="col-12 col-md-3 py-3 px-5 py-md-3 d-flex flex-column">
    				<h4 class="mb-3 text-white">Liens utiles</h4>
    				<?php
    					wp_nav_menu([
    						'theme_location' => 'footer',
    						'container' => false,
    						'menu_class' => 'sj-ul-links list-unstyled'
    					]); 
    				?>
    			</div>
    		</div>
    	</footer>
    
    	<?php wp_footer(); ?>
    	
    	<?php if(!is_page('Devis') && is_front_page() || is_page('À propos')) : ?>
    		<script type="text/javascript">
    			jQuery(document).ready(function( $ ) {
    
    				$(window).scroll(function() {
    
    					if ($(this).scrollTop() > 100) { $('.navbar').addClass("shadow-sm sj-navbar-scroll") } 
    					else { $('.navbar').removeClass("shadow-sm sj-navbar-scroll"); }
    
    					containObj 		= $('.sj-container-scroll-anim').offset().top,
    					percentage 		= Math.min(1, $(this).scrollTop() / containObj),
    					marginTop 		= containObj * (1 - percentage);
    					
    					$(".sj-picture-down").css('margin-top', marginTop);
    					if ($(this).scrollTop() >= $('.sj-container-scroll-anim').offset().top) { $(".sj-picture-up").css('margin-top', -marginTop); }
    
    				});
    
    			});
    		</script>
    	<?php endif; ?>
    
    	<?php if(!is_page('Galerie')) : ?>
    		<script type="text/javascript">
    			jQuery(document).ready(function( $ ) {
    				
    				$( '[data-fancybox="gallery"]' ).fancybox({
    					caption : function( instance, item ) {
    				  		return $(this).find('figcaption').html();
    					}
    				});
    
    			});
    		</script>
    	<?php endif; ?>
    
    </body>
    </html>
    footer.php

    #2360336
    mumu51
    Participant
    Padawan WordPress
    82 contributions

    Et voilà, ce matin ça marche alors que je n’ai touché à rien…
    Et dans une heure ça ne refonctionnera pas comme souvent, allez y comprendre quelque chose…
    Je pourrais me permettre de sautiller de joie, mais le soucis est que je ne peux pas me permettre de fournir une version peu stable ^^’

    • Cette réponse a été modifiée le il y a 1 jour et 15 heures par mumu51.
    #2360338
    mumu51
    Participant
    Padawan WordPress
    82 contributions

    Je viens d’actualiser ma page et hop, c’est reparti ça rebug… Franchement je comprends rien là ^^’

    #2360423
    mumu51
    Participant
    Padawan WordPress
    82 contributions

    Dans l’espoir qu’on m’explique quand même, j’ai remarqué que c’était lorsque j’ouvrais l’inspecteur de safari que ça se mettait à buguer.

    #2360428
    audrasjb
    Participant
    Padawan WordPress
    52 contributions

    Hello,

    Je ne reproduis pas le problème de mon côté en essayant de réutiliser le même code (simplifié) sur un thème maison.

    C’est étonnant que cela dépende de l’ouverture de l’inspecteur du navigateur. Ça fait la même chose en redimensionnant la fenêtre du navigateur j’imagine ?

    As-tu une URL à partager pour tenter de visualiser le souci ?

    #2360430
    mumu51
    Participant
    Padawan WordPress
    82 contributions

    Salut,

    Oui c’est extrêmement bizarre…

    Quand je redimensionne la fenêtre, inspecteur fermé ça va.
    Quand j’ouvre l’inspecteur ça va. Mais dès que j’actualise la page, il s’emballe et en plus il change mon option préalablement choisie (si j’ai choisi baptême il va me changer en mariage).

    Je ne vois pas trop comment je pourrais partager via une URL étant donné que c’est en local :/

     

9 sujets de 1 à 9 (sur un total de 9)
  • Vous devez être connecté pour répondre à ce sujet.