inclure fichier php dans template wordpress

Eléphanteau du PHP | 24 Messages

25 juin 2014, 15:42

Bonjour

Je cherche à inclure un fichier php dans une template wordpress, sachant que le fichier php génère un fichier XML

Voici la template
<?php
/*
Template Name: Test
*/

get_header();

     echo"<div style='text-align:center; font-size: 25px; color: rgb(255,0,0);'>";
     the_title();
     echo "</br></br>";     
     echo"</div>";
     

include('wp-content\plugins\mon-widget-list\camping.php?id='.$id1.'');

get_footer(); 

?>


Voici le fichier php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css">
    <title>Campings</title>
</head>

<body>


        <ul>
        
         <li class="itmList1"> 
             
                
                 
                 
          <?php 

//récupère les 16 dernier car de l'URL (Id object)
$idObject = substr($_SERVER['REQUEST_URI'], -16);
echo $idObject;
$fichier = "http://wcf.tourinsoft.com/Syndication/cdt65/b1155573-8443-49fb-a3d0-bb05526278e6/Objects('".$idObject."')";


$dom = new DOMDocument('utf-8');

//Ouverture du ficher XML
    if (!$dom->load($fichier))
        {
            // si il y a une erreur, avec ce message d'erreur
            die('Impossible de charger le fichier XML');
        }
                  
   //Appel de la méthode getElementsByTagName de l'objet $dom. Cette méthode cherche les éléments properties dans le fichier xml             
$recupproperties = $dom->getElementsByTagName('properties');
        foreach ($recupproperties as $properties)
               
                {
            $id = $properties->getElementsByTagName('SyndicObjectID');
            $id1 = $id->item(0)->nodeValue; 
            
                
    //Cherche les éléments ListingCOMMUNE
    $nom = $properties->getElementsByTagName('ListingCOMMUNE');
            
    // récupère les valeurs de ListingCOMMUNE
    $nom1 = $nom->item(0)->nodeValue; 
    
    //Cherche les éléments ListingPHOTOPRINCIPALE
    $photo = $properties->getElementsByTagName('ListingPHOTOPRINCIPALE');
            
    // Récupère les valeurs de ListingPHOTOPRINCIPALE
    $photo1 = $photo->item(0)->nodeValue;   
            
    //Enlève les éléments " URL "
    $photo1 = str_replace('URL : ', '', $photo1);
            
    //Enlève les éléments " Libellé "
    $photo1 = str_replace('Libellé :', '', $photo1);
    
    //Cherche les éléments ListingDESCRIPTIONCOMMERCIALE
     $description = $properties->getElementsByTagName('ListingDESCRIPTIONCOMMERCIALE');
    // Récupère les valeurs de ListingDESCRIPTIONCOMMERCIALE
    $description1 = $description->item(0)->nodeValue;  
    
    //Cherche les éléments ListingRESERVATION
    $location = $properties->getElementsByTagName('ListingRESERVATION');
    // Récupère les valeurs de ListingRESERVATION
    $location1 = $location->item(0)->nodeValue; 
    
    //Cherche les éléments ListingEQUIPEMENTS
    $equipement = $properties->getElementsByTagName('ListingEQUIPEMENTS');
    // Récupère les valeurs de ListingEQUIPEMENTS
    $equipement1 = $equipement->item(0)->nodeValue; 
    
    //Cherche les éléments ListingTARIF
    $tarif = $properties->getElementsByTagName('ListingTARIF');
    // Récupère les valeurs de ListingTARIF
    $tarif1 = $tarif->item(0)->nodeValue; 
    
    //Cherche les éléments ListingRESERVATIONURL
    $reservationurl = $properties->getElementsByTagName('ListingRESERVATIONURL');
    //Récupère les valeurs de ListingTARIF
    $reservationurl1 = $reservationurl->item(0)->nodeValue; 
    
    //Cherche les éléments ListingACCUEILANIMAUX
    $animaux = $properties->getElementsByTagName('ListingACCUEILANIMAUX');
    //Récupère les valeurs de ListingACCUEILANIMAUX
    $animaux1 = $animaux->item(0)->nodeValue;    
    
    //Cherche les éléments ListingSERVICES
    $service = $properties->getElementsByTagName('ListingSERVICES');
    //Récupère les valeurs de ListingSERVICES
    $service1 = $service->item(0)->nodeValue; 
    
    
    //Cherche les éléments ListingACTIVITESPROXIMITE
    $activite = $properties->getElementsByTagName('ListingACTIVITESPROXIMITE');
    //Récupère les valeurs de ListingACTIVITESPROXIMITES
    $activite1 = $activite->item(0)->nodeValue;       
    ?>
        
            
                
           <?php 
           // Si la longueur de la chaîne de caractère >0
               if(strlen($photo1)>0)
               {
                 echo  '<div class="placeholder">' .$photo1.'</div>'; //Afficher la photo
               
               }
            // Sinon si la longueur de la chaîne du caractère = 0
               else
                        {
                        $photo1= '<img src="imgreplace.png">'; // mettre une image par défaut
                          echo  '<div class="placeholder">' .$photo1.'</div>'; //afficher cette image
                        }     
                
                 echo '<h1>'.$nom1.'</h1>'; 
                
                echo '<p class="description"> '.$description1.'</p>'  ;
               
                
                      
                     
?>
     
      <h2><u>Informations supplémentaires</u></h2>
                
                <?php

                    
                
                       
    //$recip reçoit la fonction preg_split qui enlève les caratères |#; de $location1 et qui les remplace par un saut de ligne.
                       
                            $recip = preg_split("/[|#;]+/", $location1);
                       
                            for($i=0; $i < sizeof($recip);$i++) // pour $i=0, $i < à la taille de $recip , incrémentation de 1.
                                {
                                echo $recip[$i] . '<br>'; //Afficher $recip
                                }
                       
                        
                ?>
                
                <p class="reservationurl">Réserver en ligne : <?php echo $reservationurl1; ?></p> <!-- Affiche reservationurl1-->    
                <p class="animaux">Animaux acceptés : <?php echo $animaux1; ?></p> <!-- Affiche $animaux1 -->

                <p class="equipement"><h2><u>Equipement</u> :</h2>
                   
                   <?php 
            //$recip reçoit la fonction preg_split qui enlève les caratères |#; de $equipement1 et qui les remplace par un saut de ligne.
                            $recip = preg_split("/[|#;]+/", $equipement1);
                       
                            for($i=0; $i < sizeof($recip);$i++)  // pour $i=0, $i < à la taille de $recip , incrémentation de 1.
                                
                                {
                                echo $recip[$i] . '<br>'; //Afficher $recip
                                } 
                       

                    ?></p>
                
                
                <p class="tarif"><h2><u>Tarif</u> :</h2><?php 
        //$recip reçoit la fonction preg_split qui enlève les caratères |#; de $tarif1 et qui les remplace par un saut de ligne.
                        $recip = preg_split("/[|#;]+/", $tarif1);
                       
                            for($i=0; $i < sizeof($recip);$i++) // pour $i=0, $i < à la taille de $recip , incrémentation de 1.
                                
                                {
                               
                                echo $recip[$i] . '<br>';  //Afficher $recip
                                }
                    
                         // Si la longueur de la chaîne = 0
                        if(strlen($tarif1)==0)
                            
                        {  
                            //Afficher "non renseigné"
                            
                            $tarif1= 'Non renseigné';
                            echo $tarif1;
                        }      
                  
                    ?></p>          
                
         
                <h2> <u>Services</u> </h2>
                
                <p class="service">
                
                <?php 
//$recip reçoit la fonction preg_split qui enlève les caratères |#; de $service1 et qui les remplace par un saut de ligne.
                $recip = preg_split("/[|#;]+/", $service1);
                       
                            for($i=0; $i < sizeof($recip);$i++) // pour $i=0, $i < à la taille de $recip , incrémentation de 1.
                                
                                {
                               
                                echo $recip[$i] . '<br>'; // Affiche $recip
                                }
                    
                    
                    ?></p>
                
                <h2><u>Activités de Proximité</u></h2>
                
                <p class="activites"> 
                
                <?php

        //$recip reçoit la fonction preg_split qui enlève les caratères |#; de $activite1 et qui les remplace par 2 espaces.

                   $recip = preg_split("/[|#;]+/", $activite1);
                       
                            for($i=0; $i < sizeof($recip);$i++) // pour $i=0, $i < à la taille de $recip , incrémentation de 1.
                                
                                {
                               
                                echo $recip[$i] . '&nbsp &nbsp'; // Affiche $recip
                                }

        }// Fin foreach
                    
                    ?>
                   
                    </p></li>
</ul>    
                  
  
          



Une idée ?
Merci ! :)

ViPHP
ViPHP | 2577 Messages

26 juin 2014, 13:13

Pour résoudre ton problème, il faudrait le connaitre.

1) ne pas mettre de paramètre dans le include, mais initialiser une variable avant l'include.
$idObject = $id1;
include('wp-content\plugins\mon-widget-list\camping.php');
2) Dans le fichier camping.php, utilisé $idObject sans le recalculer.

3) pas besoin de tag <html> et <head> dans le fichier camping.php. WordPress s'en occupe déjà.