Die letzten 5 Einträge ausblenden

  • Hey,

    ich hoffe ihr könnt mir helfen!

    Und zwar möchte ich die letzten 5 Artikel von bestimmten Kategorien an einer bestimmten Stelle ausblenden! Warum seht ihr hier!

    Es geht um die Auflistung der Artikel unterhalb dieser oberen 5 letzten Artikel, damit diese unten nicht nochmal erscheinen!

    Der Quellcode sieht dort zurzeit so aus:

    Jetzt möchte ich wie gesagt, dass die letzten 5 Artikel bestimmter Kategorien, dessen IDs ich habe, dort nicht mehr angezeigt werden! Wie stelle ich das am besten an?? :oops:

    danke euch schonmal für jede Hilfe!!

    gruss
    klonschaf

    • 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

  • mh ok danke dir schonmal!!

    aber wenn ich die post-ids ausschliesse, dann muss ich ja immer den quellcode ändern bei einem neuen beitrag, oder wie? weil sonst "rutschen" die ja nicht nach!

    oder hab ich das falsch verstanden?

    ich müsste eigentlich ja nur bestimmte kategorien ausschliessen, aber von denen nur die letzten 5 posts, nicht die gesamte kategorie..!
    aber diese kombination aus tags krieg ich einfach nicht so richtig hin...:-?

    Einmal editiert, zuletzt von klonschaf (8. Mai 2009 um 19:35)

  • aber wenn ich die post-ids ausschliesse, dann muss ich ja immer den quellcode ändern bei einem neuen beitrag, oder wie?


    Natürlich nicht. ;-) Vor dem 1. Loop legst du dir ein neues Array an:

    PHP
    <?php $do_not_duplicate = array(); ?>


    Im Loop füllst du das Array mit den Post-IDs:

    PHP
    <?php $do_not_duplicate[] = $post->ID; ?>


    Und unten schließt du die gemerkten Posts aus:

    PHP
    $the_query = new WP_Query(array(
      'category__not_in' => array($ex_feat, $ex_vid),
      'post__not_in' => $do_not_duplicate,
      'showposts' => $showposts,
      'orderby' => 'post_date',
      'order' => 'desc'
    ));
  • ja sry, war ne blöde frage! :) aber cool, das klappt jetzt soweit schonmal, dass die kategorien nicht mehr angezeigt werden!!

    Das Problem ist jetzt nur, dass sie überhaupt nicht mehr angezeigt werden. Wie kriege ich das jetzt rein, dass nur die letzten 5 beiträge dieser kategorien ausgeschlossen werden? :oops:

    ist das auch noch möglich?

  • Lass mal die "category__not_in'-Zeile weg - die war noch aus deinem Code übrig. Ich vermute mal es liegt daran. Mein 'post__not_in' schließt nur (die obigen 5) Artikel aus, keine Kategorien.

  • mh, aber in der Zeile werden ja die kategorien excluded.

    PHP
    'category__not_in' => array(371,370,372,374,50,21,378),

    wenn ich die wegnehmen, ist ja wieder alles beim alten.

    ahh, es liegt bestimmt daran, dass diese 5 beiträge durch eine andere datei aufgerufen werden!? Es sind nämlich 2 verschiedene dateien...

    aber wenn ich bei der anderen datei, welche die 5 beiträge aufrufen lässt, das mit

    PHP
    <?php $do_not_duplicate = array(); ?>

    und so als erstes hinschreibe, tut sich leider auch nichts... :-|

    also müsste ich nicht theoretisch diese besagten 5 beiträge irgendwie "bennen", und dann diese "Namen" dann wieder ausschliessen? würde ich als Laie mal vermuten :)

    Einmal editiert, zuletzt von klonschaf (8. Mai 2009 um 20:36)

  • ahh, es liegt bestimmt daran, dass diese 5 beiträge durch eine andere datei aufgerufen werden!? Es sind nämlich 2 verschiedene dateien...


    Aha. Die 2. kommt per include rein, oder wie? Du musst in jedem Fall das Array mit den auszuschließenden Post-IDs dort füllen wo die ersten 5 Posts ausgegeben werden - logisch. Danach sollte das Array noch verfügbar sein, teste einfach mal:

    PHP
    <?php var_dump($do_not_duplicate); ?>


    unmittelbar vor der Benutzung.

    Das mit den Kategorien versteh ich nicht. Willst du denn überhaupt (komplette) Kategorien ausschließen? Bisher gehts doch nur um die 5 Artikel oben, oder? Wo die herkommen ist ja egal, du hast ja ihre IDs.

    Zitat

    also müsste ich nicht theoretisch diese besagten 5 beiträge irgendwie "bennen", und dann diese "Namen" dann wieder ausschliessen? würde ich als Laie mal vermuten


    Du hast ihre IDs, genauer bekommst du es nicht. ;-) Genau das macht mein Code ja.

  • ja ne also die beiden dateien kommen per include rein zur home.php!

    Ja also ich habe eine sogenannte Featured-Kategorie. In diese habe ich jetzt aber mehrere Kategorien hineingepackt.

    das sieht dann so aus in der ersten datei:

    PHP
    $featuredcat = get_option('371,370,372,374,50,21,378');

    diese werden oben angezeigt, und aus denen kommen die besagten 5 beiträge!


    jetzt sollen in der "unteren datei" halt alle beiträge, ausser die 5 letzten aus der featuredcat, angezeigt werden.


    dass diese unten nicht nochmal erscheinen, das klappt dank deiner hilfe ja jetzt. Aber dass die älteren beiträge aus der featuredcat unten auftauchen, das geht leider noch nicht!

    hoffe jetzt konnte ich es einigermassen erklären:oops: sry wenns etwas unverständlich war!

    also am besten mal der relevante Inhalt der beiden dateien:

    die "obere datei":

    PHP
    <?php 
          
        $featuredcat = get_option('371,370,372,374,50,21,378'); // ID of the Featured Category
        
        $the_query = new WP_Query('category_name=' . $featuredcat . '&showposts=5&orderby=post_date&order=desc');
        
        $counter = 0;
                
        while ($the_query->have_posts()) : $the_query->the_post(); $do_not_duplicate = $post->ID;
    ?>

    und die "untere" sieht jetzt so aus:

    Einmal editiert, zuletzt von klonschaf (8. Mai 2009 um 20:51)

  • dass diese unten nicht nochmal erscheinen, das klappt dank deiner hilfe ja jetzt.


    Jupp, weil diese 5 Artikel ja ausgeschlossen sind. (post__not_in)

    Zitat

    Aber dass die älteren beiträge aus der featuredcat unten auftauchen, das geht leider noch nicht!


    Da darfst du eben nicht die gesamten Kategorien aus der Query ausschließen. (category__not_in, cat=-123)

  • ja aber wenn ich hinschreibe

    PHP
    'category__not_in' => array($ex_feat),

    oder die zeile ganz weg lassen, dann werden die artikel wieder doppelt angezeigt, trotz (post__not_in)!

    ich glaube das mit dem ($do_not_duplicate) verfehlt irgendwie seine Wirkung, da es aus verschiedenen dateien kommt...!

  • mh, hast du auch keine Idee mehr, oder verzweifelst du an mir?:oops: :)

    ich hab ja in dem vorherigen post mal geschrieben, wie es zurzeit nach den änderungen bei mir aussieht in den 2 dateien.

    vielleicht hab ich auch nur deine hilfe falsch umgesetzt? hab da leider nicht soo grosse ahnung...

  • Wie gesagt, lass dir mal das Array unmittelbar vor der 2.Query ausgeben:

    PHP
    <?php var_dump($do_not_duplicate); ?>

    Wenn das so da steht:

    PHP
    <?php $do_not_duplicate = array(); ?>    
       
       <?php $do_not_duplicate[] = $post->ID; ?>


    dann wird das nix. Die Zeile

    PHP
    <?php $do_not_duplicate[] = $post->ID; ?>


    muss im 1. Loop (innerhalb der includierten Datei) stehen, so das jeder dort ausgegebene Post auch im Array erfasst wird.

  • ja ok,

    ich bin mir nur nie ganz sicher, was du mit 2. query und auch loops jetz genau meinst, und vor allem auch welcher datei...!

    habe es versucht mal so einzufügen, aber so ganz scheint das auch nicht zu stimmen!

    hab es sicher wieder nur irgendwie falsch eingebaut :-?

  • ich bin mir nur nie ganz sicher, was du mit 2. query und auch loops jetz genau meinst, und vor allem auch welcher datei...!


    Dann frag. ;-) Mit den Codeschnippseln wirds ja schon was, da kommen wir der Sache schon näher denke ich.

    Query und Loop sind aber vom Prinzip her schon klar, oder? Ich mein du hantierst ja damit...

    Zitat

    habe es versucht mal so einzufügen, aber so ganz scheint das auch nicht zu stimmen!


    Haut fast hin. Kleine Änderung:

    So müsste es passen. Im Theme ist die $do_not_duplicate-Funktion ja im Ansatz schon vorhanden, ich hab dir mal versucht zu markieren wie ich die genau einsetze. Vielleicht bringt das bissl Klarheit rein.

  • ok, also ich hab jetzt mal alles so übernommen!

    leider wird jetzt auf der seite irgendwie

    Zitat

    array(1) { [0]=> string(4) "1480" }

    ausgegeben und die Beiträge sind alle wieder doppelt vorhanden...

    sry wegen dem umstand!!:-? aber danke dir schonmal für deinen einsatz!!

  • leider wird jetzt auf der seite irgendwie ausgegeben


    Das kommt von der var_dump-Zeile. Die ist nur zu Debugging-Zwecken da, die kannst du dann raus nehmen.

    Allerdings sollten da 5 IDs stehen, nicht nur eine. Also irgendwas ist da noch nicht ganz korrekt. Schreib mal bitte dazu, welche Datei wann und wo eingebunden wird. Vielleicht haben wir noch irgendwo nen Dreher drin so dass die Werte überschrieben werden.

  • ah ok.

    ja also die datei mit diesen 5 artikeln am anfang, genannt "featured.php", sowie auch die "untere" datei, genannt "default.php", werden beide in die home.php included!

    diese sieht dann so aus, da kommt das mit dem duplicate auch wieder vor:

    hoffe das war, was du meinst!

  • ja also die datei mit diesen 5 artikeln am anfang, genannt "featured.php", sowie auch die "untere" datei, genannt "default.php", werden beide in die home.php included!


    Gut. Dann muss das ganze so aussehen:

    In der home.php vor dem 1. include initialisierst du das Array:

    PHP
    <?php $do_not_duplicate = array(); ?>  
    <?php include(TEMPLATEPATH . '/includes/featured.php'); ?>

    In der featured.php im Loop - also zwischen while have posts und endwhile - füllst du das Array:

    PHP
    <?php $do_not_duplicate[] = $post->ID; ?>

    In der default.php wendest du das Array auf die Query an (das haben wir ja schon).

  • also ich sollte das eigentlich alles jetzt so übernommen haben...!

    leider hat sich gar nichts verändert! Dann habe ich nochmal das "var_dump" eingefügt und das kam dabei heraus:

    Zitat

    array(1) { [0]=> string(4) "1421" }

    also wieder nur ein Wert!


    Also vielleicht habe ich ja doch irgendwas vergessen zu posten, was doch relevant wäre :neutral: ... deswegen habe ich mal die 3 dateien hochgeladen!

    vielleicht kannst du es dir ja mal bei gelegenheit angucken.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Edit: Das "1421" von oben ist genau die ID des Artikels, welcher wirklich unten nicht mehr angezeigt wird! Nur warum genau dieser Artikel, kann ich mir nicht erklären!

    Einmal editiert, zuletzt von klonschaf (9. Mai 2009 um 13:21)

Jetzt mitmachen!

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