is_home() in query_post()

  • Guten Morgen,

    ich hab nen kleines problem und zwar möchte ich gerne die is_home funktion aufrufen, damit ich weiß ob ich die funktion the_content oder the_excerpt benutze.
    Mein Problem is jetzt das ich vorher via query_post() meine posts selektiere.

    Ich hab schon gelesen, dass is_home dann nicht funktioniert wieso hab ich leider net verstanden.
    Wenn ich vorher die funktion wp_query_reset() benutze funktioniert es zwar das ich mit is_home() bzw mit is_front_page() unterscheiden kann wo ich bin aber, dann werden mir natürlich wieder alle Posts angezeigt was nicht mein ziel ist.

    Mein Design basiert auf dem neuen Twenty Eleven.

    Um das ganze nochmal grob zusammen zufassen. Ich möchte das auf der Index seite meine Posts voll angezeigt werden, weil ich dort nur News anzeige und in der Category ansicht die Posts via the_excerpt() nur zum teil angezeigt werden.

    Liebe Grüße
    Robin

    • 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

  • Hallo,

    leider kann ich erst jetzt Antworten, weil ich die letzten Tage nicht da war.

    Der Code sieht im prinziep so aus.

    Das innere is_home wird halt leider nie ausgeführt wegen dem query_posts() wohl

  • du koenntest eine 'flag' setzen, wenn 'is_home()';
    zB:

  • ne das geht leider auch nicht ich denke das es daran liegt, das in dem neuen Design der Content von der Index.php getrennt worden ist und somit in zwei verschiedenen Dateien liegt.

  • Ich weiß die Frage ist schon etwas älter aber nicht minder aktuell. Ich stand selbst gerade auf den Schlauch und konnte folgendes herausfinden:
    Sobald man query_posts ausführt werden einige conditinal tags innerhalb des Loops zurückgesetzt (siehe auch hier: http://codex.wordpress.org/Class_Referenc…uery#Properties. Ich nehme an, dass Wordpress automatisch annimmt, es handle sich um die Home-Seite sobald man den Loop ausführen will und dazu query_posts benutzt.

    In deinem Fall müsstest du also vorher is_home in eine Variable schreiben und dann an die query übergeben um das richtige Ergebnis zu erhalten:

    PHP
    $var_is_home = is_home();
    query_posts('category_name=News');
    global $wp_query;
    $wp_query->is_home = $var_is_home;

    Vorsicht: Du musst is_home erst nach der query_posts ausführen da die Funktion die aktuelle globale Variable $wp_query löscht und neu anlegt.

    Nach dem Loop muss dann von Haus aus immer folgendes gesetzt werden da ansonsten alle anderen Conditinal Tags auch nicht mehr richtig funktionieren:

    PHP
    wp_reset_query();

Jetzt mitmachen!

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