WP Theme Navi Seiten von der Auflistung ausschließen

  • Hallo, ich möchte in meiner Navigation meines Themes bestimmte Seiten von der Auflistung ausschließen.
    Ich habe auch schon das hier gelesen doch 1. weiß ich nicht wo die ID steht, und 2. ist in meinem Theme eine eigene Funktion für das Auflisten
    Hier die Header.php:

    Ich habe schon versucht das so zu machen

    PHP
    echo list_all_pages('&exclude=1,2,3,4,5');?>

    Doch das brachte nichts. Auch hier:

    PHP
    function list_all_pages(){
    
    
    $all_pages = get_the_pa_ges ();
    foreach ($all_pages as $thats_all){
    $the_page_id = $thats_all->ID;

    Habe ich das schon in die Klammern eingesetzt, doch dann wird im Browser nur noch eine weiße Seite angezeigt.

    Leider Fehlen mir noch PHP Kenntnisse, die ich über die Weihnachtsferien mal erlernen werde.

    MfG!

    • 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

  • Das Theme setzt - wie du schon erkannt hast - auf eine eigene Funktion, mit eigener DB-Abfrage. Du könntest natürlich die DB-Abfrage patchen, aber dazu sind zusätzlich noch SQL-Kenntnisse nötig.

    Wobei ich mich grade frage, wozu das Theme überhaupt eine eigene Funktion verwendet, und nicht auf wp_list_pages() setzt. Bis auf das zusätzliche <span> ist da nichts anders. Zu dem zusätzlichen <span> (falls das Theme das unbedingt benötigt) gibts irgendwo hier nen Thread.

    Ah hier:
    http://forum.wordpress-deutschland.org/design/27760-a…html#post135161

  • Moin,
    Da ich wie gesagt noch nicht wirklich Ahnung von PHP habe, habe ich das nun erst mal so in die functions.php kopiert:

    Und so sieht die Header.php aus:


    Wenn ich das so einfüge bekomme ich eine weiße Seite..

  • Okay, habe ich entfernt.

    Sieht nun so aus:

    PHP
    <?php
    
    
    if (is_home()) {
      $addclass = ' class="current_page"';
      } else {
      $addclass = '';
      }
    echo "<li" . $addclass . "><a href='" . get_option('home') . "' title='Blog'><span>Blog</span></a></li>";
        wp_list_pages('&exclude=2');?>

    Allerdings wird die entsprechende Seite nicht ausgeblendet. Ich hab auch schon mehrere ID's hingeschrieben zum testen..

    Hier die URL.

  • Hatte ich zuvor, hab das dann mit "&" versucht.

    Impressum hat ?page_id=2 also muss das doch 2 sein oder?

    Einmal editiert, zuletzt von timex (11. Dezember 2008 um 18:19)

  • Hm irgendwie hat da beim Hochladen was nicht geklappt...
    Jetzt ist das zwar drin, aber nicht so formatiert wie es sein soll..
    Mh mal sehn ob ich das hinbekomm.

  • So ich mach das nun so:

    PHP
    <div id="nav">
    
    
    <ul>
    <li <?php if (is_home()) 
          echo "class=\"current_page\""; ?>><a href="<?php bloginfo('url'); ?>/"  title="zum Blog" >Blog</a></li>
      <?php wp_list_pages('title_li='); ?>
    </ul>
    </div>

    Wie kann ich dabei die Seiten ausschließen? Habe schon versucht das exclude mit in die Klammer zu schreiben.. war nicht möglich.

  • Nein so nicht :D
    Danke. Wie gesagt, noch keine PHP Kenntnisse.
    Nun hab ich das zwar so wie es sein soll, allerdings weiß ich nicht mehr wie ich die Klassen nun so zuweisen kann, damit es so ist wie vorher. Also a active a hover etc..
    Eigentlich müssten doch die Werte von id="nav" übernommen werden?

  • liegt an dem blöden <span> der vorher mit eingebaut war..

    So nun ist es fast so wie es sein soll.
    Allerdings weiß ich grad nicht wie ich dem aktivem Link eine Klasse zuweise.
    Also beim ersten Link ist

    PHP
    <ul>
    <li <?php if (is_home()) 
          echo "class=\"current_page\""; ?>><a href="<?php bloginfo('url'); ?>/"  title="zum Blog" >Blog</a>  </li>
    <?php wp_list_pages('exclude=2&title_li='); ?>
    </ul>

    Wie mache ich das für die anderen?


    EDIT:

    Hab mir mal Navis aus anderen Themes angesehen. Hier die Lösung:

    PHP
    <li <?php if(!is_page()) echo 'class="current_page_item"'; ?>><a href="<?php echo get_option('home'); ?>/">Home</a></li>
    <?php wp_list_pages('exclude=2&title_li='); ?>

    Ja.. statt is_home is_page.. wenn mans sieht auch irgendwie logisch.

    Einmal editiert, zuletzt von timex (12. Dezember 2008 um 21:27)

Jetzt mitmachen!

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