1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Posts nicht anzeigen, wenn sie bereits angezeigt werden...

Dieses Thema im Forum "Design" wurde erstellt von michael.oeser, 4. Februar 2009.

  1. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    Hallo Gemeinde,

    der Titel meiner Frage ist vielleicht etwas verwirrend, aber es geht darum, dass ich am Anfang meiner Website nur Posts anzeigen will, die zur Kategorie "News" gehören. Diese Posts gehören grundsätzlich auch zu einer anderen Kategorie (z.B. "Misc").

    Nun möchte ich in einem zweiten Bolck auf meiner Site jeweils zwei Posts aus je einer Kategorie anzeigen, aber NUR wenn sie gerade NICHT bereits weiter oben angezeigt werden.

    Beispiel:
    Auf der Homepage meiner Website www.der-prinz.com stehen oben zwei Posts, die je in die Kategorien "News" und eine weitere Kategorie (im Moment "Misc" es könnte aber jede andere kategorie sein) gehören.
    Weiter unten folgen dann zwei Ausgabeblöcke, die Artikel der Kategorie "Misc" enthalten. Wenn nun ein Artikel bereits oben als "News" ausgegeben wird, soll dieser nicht nochmal in "Misc" ausgegeben werden, sondern der chronologisch nächste (ältere) Artikel. Es betrifft im Moment den Post "Was ist mein Blog wert..."

    Die Aufgabe für diesen zweiten Ausgabeblock lautet also quasi:

    Gib den ersten Artikel aus der Kategorie "Misc" aus, aber nur, wenn dieser nicht bereits weiter oben als "News" ausgegeben wird. Wird er oben bereits ausgegeben, dann nimm den nächsten Artikel.

    Hat jemand eine Idee, wie das zu bewerkstelligen ist?
     
    #1 michael.oeser, 4. Februar 2009
    Zuletzt bearbeitet: 4. Februar 2009
  2. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Oben die IDs der angezeigten Posts merken ($array), und unten aus der Query (oder der Anzeige) ausschließen.
    Template Tags/query posts WordPress Codex
    Die "post__not_in"-Variante wäre am elegantesten.
     
  3. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    Und wie "merke" ich mir einen Post in einem Array? Die Frage mag doof sein, aber ich bin PHP mäßig echt nicht auf der Höhe. :oops:
     
  4. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
    #4 marX, 4. Februar 2009
    Zuletzt bearbeitet: 4. Februar 2009
  5. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    Ich bin zu doof dazu...bekomme eine Fehlermeldung, das mit der PHP Syntax was nicht stimmt.

    WO muss ich nun WAS einbauen...sorry für das blöde Fragen, aber ich bin echt ein relativer PHP Dödel.

    Hier meine home.php bis einschließlich der ersten relevanten Ausgabebox. Wäre echt dankbar für eine Lösung, die auch ich kapiere ;)
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  6. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Du hast da schon eine Variable $do_not_duplicate drin, vielleicht beißt sich da was. An der Stelle würde ich auch versuchen, die Array-Variante einzubauen.

    Ansonsten poste mal bitte, wie du meinen Code eingebaut hast und wie die Fehlermeldung exakt lautet.

    Mal noch ein (mehr oder weniger) vollständiges Beispiel:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Hilft dir das weiter?
     
    #6 marX, 4. Februar 2009
    Zuletzt bearbeitet: 4. Februar 2009
  7. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    Danke schon mal. Hab jetzt Dein Beispiel genommen. Leider kommt immer noch ne Fehlermeldung:

    Parse error: syntax error, unexpected T_DOUBLE_ARROW in /homepages/19/d28888804/htdocs/WEBSITES/PRINCE/wp-content/themes/InterPhase/home.php on line 56

    Hier der Code:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  8. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Sorry, mein Fehler. Korrekturen siehe oben. ;)

    Codex-Beispiel (4):
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    array() fehlte, sorry... :oops:
     
  9. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    Ich werd´ verrückt...so wie es ausschaut funktioniert es *tiefe-verbeugung*

    DANKE!
     
  10. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    So, jetzt setze ich noch einen drauf, weil es so schön geklappt hat: Ich würde gerne im unteren Bereich ("more interesting stuf...") eine chronologische Liste von Posts aus allen (oder auch nur bestimmten) Kategorien ausgeben. Die dürfen aber wiederum nicht bereits weiter oben (bei "recent stuff" oder in den Kategorieblöcken) ausgegeben worden sein.

    Im Moment trickse ich da ein Bisschen und lasse je zwei Artikel der jeweiligen Kategorie mit einem Offset ausgeben. Das funktioniert zwar, ist aber nur innerhalb der Kategorien chronologisch, nicht über die ganze Liste

    Wie das nun wieder hinbekommen?

    Der Einfacheit halber hier nun dr komplette Code der home.php

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  11. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Genauso. Du füllst erstmal weiter das $do_not_duplicate-Array mit den Post-IDs der bereits angezeigten Posts:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Und unten schreibst du einfach deine Queries etwas um (Array-Schreibweise), so dass du den post__not_in-Parameter mit unterbringen kannst. Beispiel:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  12. michael.oeser

    michael.oeser Well-Known Member

    Registriert seit:
    24. März 2007
    Beiträge:
    347
    Zustimmungen:
    0
    Ich gedenke Dich in meine Gebete einzuschließen ;)

    Aber im Ernst: Die Lösung ist mir einen Artikel wert, mit lobender Erwähnung Deiner Person.

    Danke noch mal für die schnelle Hilfe!
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden