Problem mit wp_list_pages

  • Ich wuehle mich seit Stunden durch die Literatur aber finde den richtigen Ansatz leider nicht.
    Es handelt sich eigentlich um ein sehr simples Problem.

    Fuer ein Plugin welches ich gerade am coden bin, moechte ich im Header des BLOG mittels wp_list_pages ..... bestimmte Seiten als Menuepunkte anzeigen lassen.
    Prima das klappt auch !

    PHP
    <?php wp_list_pages('sort_column=menu_order&title_li=&child_of=62&depth=1'); ?>

    Nun verwendet wp_list_pages leider immer die Hauptdomain des Blog, ich moechte aber eine andere Domain diesen Menuepunkten zuweisen.

    Es duerfte doch sicher moeglich sein dieses zu bewerkstelligen.

    Bin fuer jeden Tipp dankbar.

    Gruesse Carlos:confused:

    • 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


  • Es duerfte doch sicher moeglich sein dieses zu bewerkstelligen.


    Nicht das ich wüsste. Warum sollte man auch eine andere Domain als Stamm nehmen?
    Wenn du externe Adressen in die Seitenauflistung einbauen willst musst du Plugins wie page links to verwenden.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Stamm Domain

    Nicht das ich wüsste. Warum sollte man auch eine andere Domain als Stamm nehmen?
    Wenn du externe Adressen in die Seitenauflistung einbauen willst musst du Plugins wie page links to verwenden.

    Herzlichen Dank Jottlieb,

    Das genannte Plugin ist leider nicht der Weg zu meinem Glueck ....

    Der Grund ist folgender !
    Es wird gewuenscht das auf einem Blog mehrere Cname Domain aufgesetzt werden.
    Fuer jede Domain wird Hauptseite und weitere Unterseiten eingerichtet.
    Bei Aufruf der Stamm Domain sind alle Seiten normal erreichbar.
    Bei Aufruf einer der Cnames Domain wird immer nur die zugeordnete Hauptseite aufgerufen, das ging sehr einfach mit Page to front ( einigen Aenderungen ). FERTIG !
    Nun muss noch im oberen Bereich das zur Hauptseite gehoerende Menue erscheinen. Geht auch mit wp_list_page .... FERTIG !

    Das aber jetzt entstandene Problem ist, das in diesem Menue leider immer die Stammdomain genutzt wird, so das der Besucher dann in das Stamm BLOG springt.

    Alternativ wie koennte ich den Inhalt von wp_list_page an eine Variable uebergeben. Ich meine in diesem Fall nur die Seiten Titel und die ID !!

    Dann koennte ich mit einer einfachen Schleife diese Daten zusammen mit der Cname Domain anzeigen lassen und das Plugin funzt.

  • ... mir ist zwar auch nicht ganz klar, wozu man den Menüpunkten eine andere Domain geben sollte - aber ... probier's doch mal folgendermaßen:

    Schritt eins:

    $MeinePageliste = wp_list_pages('blablablaDeineParameter&echo=0');

    Schritt zwei:

    $MeinePageliste = preg_replace(SuchmusterAlteDomain, NeueDomain, $MeinePageliste);

    Du musst also ein Suchmuster angeben, das href="deineAlteDomain/RestVomLink" findet und den ersten Teil des Treffers durch die neue Domain ersetzen, während der Rest des Links so bleibt, wie er ist ...

    Und in Schritt drei: Deine Pageliste wieder ausgeben.

    Nicht wundern - Die ganzen PlugIns wie Clean-Umlauts etc. wirken sich nicht auf Template-Tags aus, die nicht direkt ausgegeben werden. Damit nachher im Quelltext keine Ä's und so weiter zu finden sind, müsstest Du $MeinePageliste vor der Ausgabe noch mal filtern.

  • Okay, da haben wir wohl gleichzeitig gepostet. Aber der echo-Parameter dürfte Dir dann weiterhelfen.

    Alternativ kannst Du auch einen eigenen "Filter" schreiben und den auf wp_list_pages anwenden. ...

  • Hallo pufaxx,

    Dein Tipp gab den Ausschlag echo !!! mit Preg gab es diese Fehlermeldung,

    Warning
    : preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in /www/htdocs ...... header.php on line 47

    aber ich habe dann

    Code
    $Menueleiste=str_replace("alteDomain.com","neueDomain",$MeinePageliste);

    genutzt und damit klappt es.

    Ich bin wirklich sehr froh !!
    [COLOR=Red]Riesen dank fuer diesen entscheidenden Hinweis.[/COLOR]

    Hier nochmals der Code fuer die ein aehnliches Problem haben.

    aktuelle Domain auslesen

    Code
    $host = $_SERVER['HTTP_HOST'];

    Stamm Domain durch aktuelle Domain ersetzen

    Code
    $MeinePageliste=wp_list_pages('sort_column=menu_order&title_li=&child_of=62&depth=1&echo=0');
    $Menueleiste=str_replace("StammDomain.com","$host",$MeinePageliste);

    Als Ausgabe dann im Header, oder anderswo eintragen.

    PHP
    <li><?php echo $Menueleiste ?></li>

    Viele Gruesse Carlos

  • Aenderungen am Page to front

    Fuer die welche auch die Funktion der geanderten Startseite benoetigen hier die Aenderungen im Plugin Page to front.

    [COLOR=Black]$redirect=[COLOR=Red]"2"[/COLOR];[/COLOR] Ist die NORMALE Startseite bei StammDomain

    Je nach eingetragener Domain wird jetzt eine andere Seite angezeigt.
    Vielleicht laesst sich dieser Code auch vereinfachen, bin auf dem Gebiet nicht so versiert, aber funzen tut es !!

    Viel Spass Carlos

  • "Funktionieren" tut immer ne ganze Menge. Und "vereinfachen" lässt sich immer mindestens ebenso viel. Nur meistens ist "nicht elegant, aber funktioniert" im Endeffekt eleganter als "elegant, aber funktioniert nicht richtig". Meine bescheidene Meinung,

    :-)

Jetzt mitmachen!

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