Variable für WP-"Seiten"

  • Hallo,

    Wenn man im Footer in einer speziellen Kategorie nen Link einbauen will, des sonst in keiner anderen Kategorie im Footer erscheint, dann muss man einfach in der footer.php das hier einbauen:

    PHP
    if (is_category('NameDerKategorie')) { ?> <a href="http://www.webseite.de/" target="_blank">Linktext</a> <?php }

    Das funktioniert dann aber nicht bei angelegten "Seiten". Wie lautet denn da der Code-Schnippsel? Ich hab jetzt ein paar Scripte durchsucht, aber ich komme nicht drauf.

    Kann mir einer helfen?

    • 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

  • Ich fürchte fast, dass geht bei mir nicht, da ich so ein spezielles Template habe (Crimson). Aber ich bin dann auf diese Idee gekommen:

    Sowohl im Header als auch in der Siderbar greift das Script mit diesem Code auf die anlegten Seiten zurück:

    Jetzt hab ich versucht, dass selbige so umzuwandeln (eigentlich wärs keine grossartige Änderung) dass ich das auch im Footer verwenden kann, denn die Unterseite auf der der Link zu sehen sein soll, ist eine Seite aus der Navigation, und das sähe dann so aus (wenn der gewünschte Link speziell auf Seite 2 erscheinen soll):

    Aber damit krieg ich den Link auch nicht zu sehen. Ich blicks einfach nicht :cry:

  • Abgesehen davon, wie dein Theme die Seiten ausliest, so sollte dennoch Olaf's Code funktionieren... wenn du also eine bestimmte Seite abfragen willst, sollte das mit

    PHP
    <?php if (is_page('IDderSeite')) { ?>


    funktionieren.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Abgesehen davon, wie dein Theme die Seiten ausliest, so sollte dennoch Olaf's Code funktionieren... wenn du also eine bestimmte Seite abfragen willst, sollte das mit

    PHP
    <?php if (is_page('IDderSeite')) { ?>

    funktionieren.

    Sollte man meinen, aber es tuts nicht:

    PHP
    <div id="footer">
      <?php 
      ......
      if (is_category('Kategorienamne')) { ?> <a href="http://www.domain.de/"   target="_blank">Linktext</a> <?php } 
      if (is_page('298')) { ?> <a href="http://www.test.de/">TEST</a> <?php }    
         else { } ?>

    Die ID ist die, die es mir im ACP unter "Seitenverwaltung" der betreffenden Page anzeigt. Also ich meine es ist alles korrekt.....

    Aber es zeigt den Link nicht an, Mist.

    Alle Zeilen mit is_category (steht bei mir ne ganze Reihe drin) werden in den Kategorien anzeigt, aber nicht dieser eine auf der betreffenden Page......

  • Versuch mal Folgendes:

    PHP
    <div id="footer">
    <?php if (is_category('Kategorienamne')) { ?>
    <a href="http://www.domain.de/" target="_blank">Linktext</a>
    <?php } ?>
    <?php if (is_page('298')) { ?>
    <a href="http://www.test.de/">TEST</a>
    <?php } ?>


    Des weiteren bitte mal den kompletten Code des Templates posten. :)

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Versuch mal Folgendes:

    PHP
    <div id="footer">
    <?php if (is_category('Kategorienamne')) { ?>
    <a href="http://www.domain.de/" target="_blank">Linktext</a>
    <?php } ?>
    <?php if (is_page('298')) { ?>
    <a href="http://www.test.de/">TEST</a>
    <?php } ?>

    Das macht ja keinen Sinn. Man öffnet und schliesst lediglich öfters ein PHP-Bereich, an Stellen wo das nichts nutzt. So wie es derzeit ist, spart man sich das, weil zwischen dem Schliessen und wieder Öffen kein HTML kommt. Das kann rein funktionell keine Änderung bringen.

    Zitat

    Des weiteren bitte mal den kompletten Code des Templates posten. :)


    Du meinst du komplette Footer.php? Oder wie?

  • Das macht ja keinen Sinn. Man öffnet und schliesst lediglich öfters ein PHP-Bereich, an Stellen wo das nichts nutzt. So wie es derzeit ist, spart man sich das, weil zwischen dem Schliessen und wieder Öffen kein HTML kommt. Das kann rein funktionell keine Änderung bringen.


    Naja, 'sollte' ist so eine Sache. In einer WP-Umgebung sollte auch is_page() funktionieren... Aber zumindest ist es so übersichtlicher (IMO) und macht besser klar, ob überall die Klammern geschlossen worden sind etc..

    Und ja, die footer.php, bitte.

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Es steht nicht wesentlich mehr drin, als in der gekürzten Fassung. Persönliche Daten hab ich entfernt, ganz sicher ohne dass dies die Funktionalität beeinträchtigen könnte ;-)

  • is_paged != is_page :)


    Ja, das war ein weiterer Versuch meinerseits, denn es gibt (laut dem Link weiter oben) sowohl is_page und is_paged, und is_paged hab ich auch noch probiert, genauso wie ich das mit dem vielen <?php ?> eingebaut habe wie du siehst.

    Aber es klappt einfach nicht, auch nicht mit is_page . Ich weiß mir keinen Rat mehr....

  • ich hätte da auch mal eine verwandte frage:

    wie kann ich denn mehreren "bedingungen" das gleiche ergebnis zuordnen ?
    mit anderen worten: könnte ich das so machen, wie ich wollte, würde ich in sidebar.php schreiben:

    ich möchte also sowohl der page 15 als auch der page 19 die gleiche sidebar zuordnen, die homepage bekommt aber eine eigene und alle übrigen seiten zeigen wieder eine andere standard-sidebar.
    das beispiel hier oben funktioniert so nicht. wie schreibe ich die bedingung, dass sie für page 15 und 19 gleichermaßen stimmt ?

    eine lösung wäre sehr wertvoll für mich. vielen dank im voraus. :)

  • PHP
    <?php
    if ( is_home() ) {
    include(TEMPLATEPATH . '/sidehome.php');
    } if ( is_page('15') OR is_page('19') ) {
    include(TEMPLATEPATH . '/sidespartan.php');
    } else {
    include(TEMPLATEPATH . '/sideorgi.php');
    }
    ?>

    wpseek.com - Die WordPress-Code-Suchmaschine

  • cool, danke schon mal. einfach nur "OR", da muss man erst ma draufkommen. :mrgreen:

    aber jetzt habe ich leider das problem, dass in der form, in der der code jetzt ist, sidebar.php für meine homepage missverständlich ist. da kommen jetzt auf der startseite zwei sidebars untereinander, während auf den pages 15 und 19 alles wie gewünscht funktioniert.
    gibt es noch eine möglichkeit, die eine if-angelegenheit home von der anderen if-angelegenheit page klar zu trennen, um das zu vermeiden ?

  • ungetestet:

    PHP
    <?php
    if ( is_home() ) {
    include(TEMPLATEPATH . '/sidehome.php');
    } elseif ( is_page('15') OR is_page('19') ) {
    include(TEMPLATEPATH . '/sidespartan.php');
    } else {
    include(TEMPLATEPATH . '/sideorgi.php');
    }
    ?>
  • @ Alphawolf:
    nein, das ist keine statische Startseite

    @ Olafb:
    [COLOR=Red]JUCHUUU![/COLOR] das scheint zu stimmen. selbst der internet explorer scheint das zu kapieren. jetzt zeigen page15, page19 und die startseite verschiedene sidebars an und keine doppelt. vielen dank ! :-D

Jetzt mitmachen!

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