Einbinden externer Datei

  • Hallo,

    habe einen selbstgehosteten Wordpress Blog und arbeite gerade an einem eigenen Design.

    Ich möchte für bestimmte Seiten die Kommentarfunktion ausschalten. Das mache ich zur Zeit so:

    PHP
    <?php if (!is_page( array(4,7,10,37,166,172) ) ) : ; ?>

    Nun benötige ich die Seiten ID's wohl noch öfters auch für andere aussnahmen. Deshalb würde ich gern den Teil mit

    Zitat

    4,7,10,37,166,172

    in eine extra Datei auslagern und dann nur noch an die gewünschte Stelle einbinden.

    Ich habe es schon mit get_template_part() probiert, aber das funktionerte so nicht:

    PHP
    <?php if (!is_page( array(get_template_part('ausnahme') ) ) : ; ?>

    Hat jemand eine Lösung für mich?

    • 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

  • Hat niemand eine Idee?

    Vielleicht kann jemand ja genauer erklären was [COLOR=#000000][COLOR=#0000BB]get_template_part[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'ausnahme'[/COLOR][COLOR=#007700]) [/COLOR][/COLOR]genau macht. Ich dachte es würde einfach einen Programm Code einfügen aber er unterbricht meinen Code einfach, fügt ein Text ein, und nimmt dann den Code wieder auf. Dadurch greift meine IF Bedingung nicht mehr .. :(

  • Soweit versteh ich das, was mir aber nicht möglich ist, ist es ein Array zu übergeben also:

    Er inepretiert das Array dann immer als FALSE. Schreib ich das Array per Hand in page.php funktioniert es aber (auch als Variable definiert und in die IF Bedingung eingesetzt)

  • Ich habe das mal so gemacht:
    Datei ausnahmen.php angelegt:

    Zitat

    <?php
    $ausnahmen='1,2,3,4'
    ?>


    Aufruf im Template:

    Zitat

    <?php
    $ausnahmen==include 'ausnahmen.php';
    echo $ausnahmen;
    ?>


    Ergebnis: 1,2,3,4

  • Hilft mir leider noch nicht weiter, weil ich das ganze als Array benötige, bzw. im Template selbst ein Array mit den Werten erzeuge. Ich schaffe es nicht das Array zu übergeben sofern das möglich ist.

  • Na, da kannst du doch die kommaseparierte Liste übergeben:

    Zitat


    is_page( array( 42, 54, 6 ) )
    /* Returns true when the Pages displayed is either post ID = 42, or post ID = 54, or post ID = 6. */

    is_page( array( $ausnahme ) )

  • ja genau das funktionert eben nicht :(

    Ich mache das so:

    PHP
    //ausnahme.php
    <?php
    $ausnahme = '4,7,10,37,166,172';
    ?>
    
    
    //page.php
    <?php get_template_part( 'ausnahme' ); ?>
    <?php if (!is_page( array($ausnahme) ) ) : ; ?>

    Er interpretiert immer TRUE egal ob die Page ID 4 oder sonst was ist...

    Einmal editiert, zuletzt von dergermane (23. Januar 2013 um 14:29)

  • Ok ich habe es. Also mein Fehler war, dass get_template_part() das wieder verwenden von Variablen verhindert. Mit Include() kann ich die Variablen weiter verwenden. Vielen Dank an bgeissler für den Hinweis mit include().

    Wen es interessiert das ist meine endgültige funktionierende Variante:

  • Meine Beschreibung oben war ohne Verwendung von get_template_part()

    So geht es mit get_template_part():

    Datei ausnahmen.php:

    Zitat

    <?php echo "1,2,3,4" ?>

    Zitat


    <?php $ausnahmen=get_template_part( 'ausnahmen' ); ?>
    <?php echo $ausnahmen; ?> /* zeigt den Inhalt des array an */
    [COLOR=#000000][COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]if (![/COLOR][COLOR=#0000BB]is_page[/COLOR][COLOR=#007700]( array([/COLOR][COLOR=#0000BB]$ausnahmen[/COLOR][COLOR=#007700]) ) ) : ; [/COLOR][COLOR=#0000BB]?>[/COLOR][/COLOR]


    beide Lösungen übergeben also lediglich die IDs an das array. Die if-Abfrage muss dann erfolgen.

Jetzt mitmachen!

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