versch. grafiken auf kindseiten mit if-abfrage

  • ich habe getern wohl ins falsche forum gepostet, deshalb hier nochmal, sorry fürs doppelposting. meine frage:

    ich habe eine wp-website, die vier hauptbereiche hat, die wiederum
    unterseiten haben, angelegt als seiten, also vier elternseiten und
    entsprechende kind-seiten.
    bisher hatte ich eine abfrage gebaut, die die page_id abfragt oder ob es ein
    kind dieser page_id sei, um dann entsprechend eine bestimmre grafik in den
    kopfbereich einzubauen.
    nun sollen aber verschiedene unterseiten, also kindseiten (und auch deren
    kindseiten!) doch noch eigene grafiken bekommen.
    wie lässt sich diese abfrage logisch richtig formulieren? bzw. auch in der syntax.
    ich bekomme es nicht hin.

    hier ist die bisherige abfrage:

    PHP
    <?php if ( is_page ('76') || in_array(76,get_post_ancestors($post)) ) {  
    echo '<img src="/grafiken/bild1.jpg" width="543" height="124">'; }  ?>
     <?php if ( is_page ('8') || in_array(8,get_post_ancestors($post)) )  { echo 
    '<img src="/grafiken/bild2.jpg" width="543" height="124">'; }  ?>
     <?php if ( is_page ('13') || in_array(13,get_post_ancestors($post))  ) { 
    echo '<img src="/grafiken/bild3.jpg" width="543" height="124">'; }  ?>
     <?php if ( is_single() || is_category() || is_tag() || is_archive()  || 
    is_page ('15') || in_array(15,get_post_ancestors($post)) ) { echo  '<img 
    src="/grafiken/bild4.gif" width="543" height="124">'; }  ?>

    abfragen will ich jetzt so etwas wie:

    wenn es page_id 8 ist oder eine kindseite von 8 aber nicht 134, dann bringe
    bild2.
    wenn es aber page_id 134 oder eine kindseite von 134 ist, dann bringe bild2_B

    also page_id ('134') ist eine kindseite von '8', soll aber trotzdem ein
    eigenes bild bekommen, ebenso wie alle kindseiten von 134.

    ich hoffe, ich habe mich verständlich ausgedrückt.

    vielen dank für eure hilfe!!!

    ulrike stehling

    • 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

  • Hast Du versucht, die logischen Bedingungen abseits vom Code zu formulieren?

    Zitat

    [COLOR=#333333]wenn es page_id 8 ist oder eine kindseite von 8 aber nicht 134, dann bringe [/COLOR]
    [COLOR=#333333]bild2.[/COLOR]


    if ((aktuelle Seite hat die ID 8 ODER aktuelle Seite ist Unterseite von Seite mit der ID 8 ) UND Seite hat nicht die ID 134)
    Das Ganze müsstest Du jetzt nur noch in Code umwandeln.

    Oder liegt das Problem woanders?

  • hallo heimwerker,

    erstmal danke für deine antwort!
    das problem ist genau das, einmal die bedingung logisch richtig zu formulieren, aber auch die richtige syntax, ich bin leider nur "kommentarfähig" in php, also sehr ungeübt.

    deine formulierung der bedingung habe ich jetzt mal so umgesetzt, aber das wirft leider eine fehlermeldung aus, da stimmt also die syntax nicht. kannst du mir dabei auch weiterhelfen?

    PHP
    <?php if (( is_page ('8') || in_array(8,get_post_ancestors($post))) ! is_page ('134') ) { echo '<img src="/grafiken/bb/bb-streichhoelzer1-kopf.jpg" width="543" height="124">'; } ?>
                           <?php if ( is_page ('134') || in_array(134,get_post_ancestors($post)) ) { echo '<img src="/grafiken/bb/bb-streichhoelzer2-kopf.jpg" width="543" height="124">'; } ?>

    danke!

    ulrike

  • ich hatte das UND vergessen (&&).

    so funktioniert es jetzt (ich habe auch noch eingefügt, das UND nicht kindseite von 134, die bedingung heisst also jetzt:

    if ((aktuelle Seite hat die ID 8 ODER aktuelle Seite ist Unterseite von Seite mit der ID 8 ) UND Seite hat nicht die ID 134 UND seite ist nicht Unterseite von Seite mit ID 134)

    PHP
    <?php if (( is_page ('8') || in_array(8,get_post_ancestors($post))) && !is_page ('134') && !in_array(134,get_post_ancestors($post))) { echo '<img src="/grafiken/bb/bb-streichhoelzer1-kopf.jpg" width="543" height="124">'; } ?>
    <?php if ( is_page ('134') || in_array(134,get_post_ancestors($post)) ) { echo '<img src="/grafiken/bb/bb-streichhoelzer2-kopf.jpg" width="543" height="124">'; } ?>

    danke, heimwerker, vielen dank!! du hast mir den richtigen weg gewiesen!
    danke.

    ulrike

Jetzt mitmachen!

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