2010-07-09 8 views
2

J'utilise un modèle wordpress en php comme ceci:Comment utiliser les variables php propres dans le modèle wordpress?

<?php 
include('wp-blog-header.php'); 
get_header(); 
?> 

...Hello World... 

<?php get_footer(); ?> 

ok, cela fonctionne bien ... mais le contenu du titre et d'autres balises meta sont vides. Comment puis-je modifier le contenu de l'en-tête ou utiliser mes propres variables $ à l'intérieur de la section get_header()? il ne fonctionne pas comme ça:!

$test="Blabla"; 
get_header(); 

.. inside a wordpress header template: 
echo $test; 

la variable $ test est vide :(.. toutes les idées grâce

+0

Affichez également le contenu du fichier 'wp-blog-header.php'. – Anax

Répondre

6

La variable $ test est vide parce que l'en-tête est inclus par une fonction, par conséquent efficace " dans la fonction, et plus important encore, dans un champ différent .. penser comme

function get_header() 
{ 
    $test = '1234'; 
} 
get_header(); 
echo $test; // won't work because test is in a different scope 

vous pouvez cependant utiliser globals, ou _SESSION variables $, ou créer une classe statique pour tenir variables qui peuvent être appelés de n'importe où

l'option globale est probablement la solution la plus rapide ici (pas nécessairement la plus stricte).

$GLOBALS['test'] = "Blabla"; 
get_header(); 

.. inside a wordpress header template: 
echo $GLOBALS['test']; 

espoir qui aide

2

mettre tous votre fonction personnalisée et/ou variable dans votre functions.php

ou remplacer get_header(); par include get_bloginfo ("template_url"). '/ Header.php';

+0

et le pouce en l'air pour @nathan explication – Eduplessis

+0

Ne pas inclure via l'URL lorsque vous n'avez pas à - "include get_bloginfo (" template_url "). '/ Header.php';" utilisez 'include TEMPLATE_DIR. '/header.php'; 'à la place. – TheDeadMedic

+0

ouais vrai ... mon erreur – Eduplessis

0

Par défaut, get_header() extrait le fichier header.php. vous pouvez simplement réécrire le fichier header.php pour inclure ce que vous voulez. Si vous ne voulez pas le réécrire pour tous les modèles mais seulement quelques-uns, vous pouvez utiliser get_header ('name') qui récupèrerait header-name.php dans lequel vous pourriez avoir vos propres éléments.

1

vous suffit de remplacer:

<?php 
$test="Blabla"; 
get_header(); 
?> 

avec:

<?php 
$test="Blabla"; 
include(TEMPLATEPATH . '/header.php'); 
?>; 

et la variable sera portée. Essayez d'éviter d'utiliser des globals.

Questions connexes