2010-12-14 7 views
0

Ich habe diesen Code in meiner header.php für Wordpress, um einen Mini-Feed oben auf der Seite anzuzeigen oder nicht.Wordpress und PHP

<?php if (!$noHeader) { include('feed.php'); } ?> 

Am Anfang jeder Seite habe ich die $ noheader Variable

$noHeader = true; 
get_header(); 

Aus irgendeinem Grund, dies nicht funktioniert. Was mache ich falsch?

+1

Könnte auch hier gefragt werden: http: //wordpress.stackexchange.com/ – greg0ire

+1

* "Das funktioniert nicht" * - bitte erarbeiten - was erwartet wurde und was passierte – Hamish

+0

greg0ire danke für den Link. so gewöhnt, stackoverflow für alles zu verwenden, wusste nicht einmal, dass es existierte. – RGilkes

Antwort

2

Wie Stephen sagte die get_header Funktion nicht, dass Sie in dem Bereich, den Sie in waren Zugriff auf Variablen nicht geben, wenn Sie es genannt. Sie können dies umgehen, indem Sie Ihre Variablen vor dem Aufruf von get_header globalisieren.

<?php // In your theme file 
global $noheader; 
$noheader = true; 
get_header(); 

<?php 
global $noheader; 
if(!$noheader) { 
    include(TEMPLATEPATH.'/feed.php'); 
} 

chaotisch, und es ist Dies mag, aber es gibt keinen Grund, es nicht zu tun, weil Wordpress globale Variablen überall verwendet. Wie ich in einem Kommentar zu Stephen sagte, ist dies besser als direkt die header.php Datei für den Fall, dass Sie jemals Eltern/Kind Themen verwenden möchten.

+0

Ehhh Paar zusätzliche Zeilen Code tut nicht weh. VIELEN DANK!! – RGilkes

+1

Globalisierung? Siehe # 3: http://stackoverflow.com/questions/4273244/auditing-a-php-codebase/4273378#4273378 – Stephen

+0

Danke Stephen - yeah es saugt aber es ist irgendwie WordPress funktioniert sowieso und WordPress Entwicklung beginnt wirklich Sei ein Schmerz, wenn du aus ihren Paradigmen ausbrichst. – nickohrn

2

Ich hatte dieses Problem. Die Wordpress-Funktion get_header(); wertet keine lokalen Variablen aus der übergeordneten Datei in der enthaltenen Header-Datei aus. Ändern Sie ihn auf

// get_header(); //commented out for clarity of explanation 
include 'header.php'; 

Ehrlich gesagt, gibt es keinen wirklichen Grund, dass ich gefunden habe get_header(); über einen include verwenden, sowieso.

Genauso gut könnte man dies auch tun:

// get_sidebar(); 
include 'sidebar.php'; 

// get_footer(); 
include 'footer.php'; 
+0

Sie könnten get_header verwenden, wenn Sie das Eltern/Kind-Template-Theme-Paradigma verwenden, was ziemlich toll ist. – nickohrn

+0

Danke für die Hilfe, aber wie Nickhorn sagte, ich verwende Eltern/Kind Themen in WP. – RGilkes

+0

Deshalb hasse ich WordPress. Ich habe es für eine OO/MVC-Lösung aufgegeben und nie zurückgeschaut. – Stephen