Eigenes Template über Custom Fields abrufen

  • Hi,

    Ich richte mir gerade aus Wordpress ein kleines MinisiteCMS her und bearbeite die Pages. Folgende Idee dabei: Ich möchte Bestandteile der Seite über die Custom Fields kontrollieren. Beispielsweise der Footer, die Sidebar oder eine bestimmte Box.

    In den Custom Fields setz ich einfach einen Parameter wie 'call_template' und belege ihn z.B. mit dem Wert 'sidebar_01' oder 'sidebar_01.php'

    Im Pagetemplate soll der Wert dann abgerufen werden und dann mit z.B.
    <?php include (TEMPLATEPATH . 'hier soll dann der Wert irgendwie rein'); ?>
    schlussendlich in die Seite eingebunden werden.

    Wie mach ich das?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Sers Rahner,

    Vielen Dank für den Tip! Wahrscheinlich war ich in meiner Problembeschreibung nicht konkret genug :)

    Mit get_post_meta arbeit ich auch scho ganz fleissig, aber alles was ich momentan kann ist den string über echo auszugeben :-D

    Ich versuch auch schon die ganze Zeit diesen String in einer Variablen abzulegen und diesen dann in der get_post_meta Funktion weiterzuverarbeiten.

    PHP
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php 
    	echo get_post_meta($post->ID, 'tie_to_sidebar', true);
    	$testvar = get_post_meta($post->ID, 'tie_to_sidebar', true);
    	include (TEMPLATEPATH . '\''+$testvar+'\'');
        ?>
    <?php endwhile; endif; ?>

    ICH BIN TOTALER PHP NOOB! Daher ist obiger Code entweder komplett falsch, was aber nicht so ganz sein kann, oder enthält einfach nur ein paar regex-fehler oder so.

    Was denkste, Rahner?
    Oder irgendjemand sonst ne Idee?!

    Einmal editiert, zuletzt von ninedaysoff (29. Dezember 2008 um 22:16)

  • Inzwischen bekomm ich sogar eine Fehlermeldung :-D

    hier der code soweit:

    PHP
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    	<?php 
    		echo get_post_meta($post->ID, 'tie_to_sidebar', true);
    		$testvar = get_post_meta($post->ID, 'tie_to_sidebar', true);
    		include (TEMPLATEPATH . "/$testvar");
    	?>
    <?php endwhile; endif; ?>

    und hier ein ausschnitt aus der fehlermeldung:

    Warning: include(hier steht der korrekte pfad drin /sidebar_lounge_01) [function.include]: failed to open stream: No such file or directory in hier steht der korrekte pfad drin /page.php on line 76

    Warning: include() [function.include]: Failed opening 'hier steht der korrekte pfad drin /sidebar_lounge_01' for inclusion (include_path='.:/opt/RZphp5/includes') in hier steht der korrekte pfad drin /page.php on line 76

    kommt das irgendwie bekannt vor?

  • Okay hier die Lösung:

    Wer Teile seines Templates aus dem Backend steuern möchte und z.b. im Backend angeben möchte welcher footer geladen werden soll, der kann gerne folgenden code benutzen:

    PHP
    <?php  
    	$testvar = get_post_meta($post->ID, 'DEIN_CUSTOM_PARAMETER', true); 
    	include (TEMPLATEPATH . "/$testvar.php");
    ?>

    Im obigen Beispiel wird der Wert aus dem Customparamter in der zweiten Zeile einfach mit ".php" ergänzt. Es handelt sich ja schliesslich im um eine Datei. Deswegen funktionierte es auch nicht, aber nun mit obigem code klappts!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!