Neuen zufälligen Artikel laden

  • Hallo!
    Auf meiner Startseite möchte ich immer einen zufälligen Artikel aus einer bestimmten Kategorie ausgeben. Klappt mit folgendem Code:

    PHP
    <?php 
    // Lead Story module begins   
       query_posts('orderby=rand&showposts=1&cat=3'); //selects 1 article of the category with ID 3 ?>    
       <?php while (have_posts()) : the_post(); ?>

    Per Relode-Button kann der Besucher einen neuen zufälligen Artikel laden.

    Das Problem:
    Bei dieser Art der "zufälligen Auswahl" kann es passieren, das 2 mal hintereinander der gleiche Artikel geladen wird. Oder ein Artikel erscheint viel öfter als andere...
    Wie kann ich das verhindern?
    Ich will das immer ein anderer Artikel geladen wird und alle gleichmäßig oft angezeigt werden. Jemand eine Idee?

    Zu bewundern ist das Problem auf EDIT
    Bitte noch nicht so auf die Inhalte achten. :wink:

    Liebe Grüße!

    Einmal editiert, zuletzt von sms-producer (7. September 2008 um 18:33)

    • 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

  • PHP
    <?php query_posts((array('category__in' => array(53,197), 'orderby' => 'rand', 'showposts' => 1)));?>
    <?php while (have_posts()) : the_post(); ?>
    
    
    blabla die Ausgabe
    
    
    <?php endwhile;?>

    53,197 das sind die IDs der Kategorien

    holt bei mir die Artikel nach dem Datem geordnet raus,

    lg

  • Hi Monika,
    danke für deine Hilfe!
    Leider hat's irgendwie noch nicht so recht funktioniert. Also ich habe deinen Code wie folgt übernommen:

    PHP
    <?php 
    // Lead Story module begins   
       query_posts((array('category__in' => array(3), 'orderby' => 'rand', 'showposts' => 1)));?>    
       <?php while (have_posts()) : the_post(); ?>

    Trotzdem passiert es, dass bei mehrfachem relode der Seite Artikel doppelt erscheinen. Es sind genug Artikel vorhanden, eigentlich darf das nicht passieren. Ich kann keine Veränderung zu meiner ersten Lösung erkennen. :cry:
    Wo könnte der Fehler liegen?

    LG

  • Nur eine Idee:
    Versuch es mal mit:

    PHP
    // Lead Story module begins
    query_posts('orderby=rand&posts_per_page=-1&cat=3'); 
    while (have_posts()) : the_post(); 
    // Anweisungen
    break;
    endwhile;


    Und nebenbei:
    zufällig bedeutet auch, dass zufällig mehrmals nach einander der selbe Beitrag ausgegeben werden kann. ;-)

    VG Elke

    Es gibt keine dummen Fragen, es gibt nur dumme Antworten...
    http://u-portal.de/

    Einmal editiert, zuletzt von redcat63 (2. September 2008 um 10:01)


  • zufällig bedeutet auch, dass zufällig mehrmals nach einander der selbe Beitrag ausgegeben werden kann.


    Ja, das verstehe ich. :mrgreen:
    Aber das mag ich nicht! Kann ich dem "Zufall" denn nicht irgendwie ein wenig "Ordnung" beibringen?

    Mir tut sich grad noch ein neues Problem auf:
    Ich will diese "Zufallsbeiträge" ja auf 3 Tabs, von drei unterschiedlichen kategorien ausgeben. Auf dem ersten Tab ist der Relode einfach, da linke ich einfach wieder auf die Startseite. Aber wie mache ich das denn auf den beiden anderen Tabs?

    PHP
    href="<?php echo get_option('home') ?>/#fragment-2

    Das liefert zwar einen funktionierenden Link, aber der Bewirkt keinen Relode und somit keinen neuen Artikel. :cry:

    Kann sich bitte nochmal jemand erbarmen?

  • Ja, das verstehe ich. :mrgreen:
    Aber das mag ich nicht! Kann ich dem "Zufall" denn nicht irgendwie ein wenig "Ordnung" beibringen?


    Das widerspricht sich und ist somit mit dem Parameter [COLOR=#000000][COLOR=#CC0000]orderby=rand[/COLOR][/COLOR] nicht möglich.
    Hat sich eigentlich garnichts geändert? Bringt er immer nur einen oder nur einige wenige auf den Bildschirm? Kurz: Was macht er wann?
    Wieviel Beiträge hast Du bereits? 10, 100 oder vielleicht sogar mehr als 10.000?
    Nur so eine Idee, die man weiterspinnen müsste:
    schreibe die IDs in ein array, sortiere es nach einem total verrückten Kriterium (letzter Buchstabe eines Beitrags) und gebe sie anschließend der Reihe nach aus.



    Mir tut sich grad noch ein neues Problem auf:
    Ich will diese "Zufallsbeiträge" ja auf 3 Tabs, von drei unterschiedlichen kategorien ausgeben. Auf dem ersten Tab ist der Relode einfach, da linke ich einfach wieder auf die Startseite. Aber wie mache ich das denn auf den beiden anderen Tabs?

    PHP
    href="<?php echo get_option('home') ?>/#fragment-2

    Das liefert zwar einen funktionierenden Link, aber der Bewirkt keinen Relode und somit keinen neuen Artikel. :cry:

    Kann sich bitte nochmal jemand erbarmen?


    Wenn Du Dich erbarmst, dies auch für mich verständlich niederzuschreiben, dann werde ich es gerne versuchen. ;-)

    VG Elke

    Es gibt keine dummen Fragen, es gibt nur dumme Antworten...
    http://u-portal.de/

  • Wenn Du Dich erbarmst, dies auch für mich verständlich niederzuschreiben, dann werde ich es gerne versuchen. ;-)


    Ich versuch's: :-D
    Also, auf meiner Startseite findest du oben einen Bereich mit 3 Tabs (Facts, Videos und Pics). Auf dem obersten Tab (Facts) wird immer ein Zufallsbeitrag (der besagte) aus Kategorie 3 ausgeben.
    Um einen neuen Beitrag zu laden, kann der Besucher auf den "Mehr-Knopf" drücken. Der "Mehr-Knopf" linkt auf die Startseite, somit wird die Seite neu geladen und ein neuer Zufallsartikel erscheint. Funktioniert bereits so wie es soll (mal abgesehen von diesem "Zufalls-Problem").

    Auf dem 2ten und 3ten Tab wird ebenfalls je ein Zufallsartikel ausgegeben, jedoch aus anderen kategorien.
    Das Problem: Ich weiß nicht, wie ich den "Mehr-Knopf" auf den hinteren Tabs realisieren soll. Wenn ich dort auch auf die Startseite linke, wird zwar ein neuer Zufallsbeitrag geladen, doch der Besucher muss immer zurück auf den jeweiligen Tab klicken (sehr unschön!).
    Ich dachte es klappt wenn ich mit obigem Code direkt auf das jeweilige Tab-Fragment linke. Das bewirkt aber keinen relode der Seite, also wird keine neuer Beitrag geladen. :-(
    Wie kann ich die Seite neu laden (damit ein neuer Beitrag erscheint) ohne den Besucher auf den obersten Tab zu leiten?

    Einmal editiert, zuletzt von sms-producer (7. September 2008 um 18:34)

  • hallo zusammen,

    da ich auf meiner startseite auch gerne aus meinem lexikon immer einen anderen begriff anzeigen möchte, habe ich den o.g. Code mal so übernommen.
    Es geht bei mir komischerweise aber gar nicht.
    Wenn ich den Code von Monika nehme, dann steht da nur "blabla die Ausgabe"
    Es wird aber sonst nix angezeigt.....was mach ich denn falsch....????

    Lefdi

  • hat keiner ne lösung.....?

    komisch, dass der code bei mir nicht geht......

    vielleicht weiß ja doch noch jemand rat.

    Lefdi

  • wo und wie hast du den Code übernommen?

    Zitat

    dann steht da nur "blabla die Ausgabe"

    Da soll auch dein Code für die Ausgabe rein ;)

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • hi,

    also ich hab den code von sms-producer mal so übernommen und an meine entsprechende kategorie angepasst.

    Also den code hier

    PHP
    <?php 
    // Lead Story module begins   
       query_posts('orderby=rand&showposts=1&cat=3'); //selects 1 article of the category with ID 3 ?>    
       <?php while (have_posts()) : the_post(); ?>
  • ja und wo haste den Code jetzt eingebaut? Zeig doch mal ein bisschen mehr Code ;)

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • den hatte ich zum testen erst mal im footer drinne.
    soll aber später auf meine startseite, da ich dort die sache mit den flickr bildern raus haben möchte.....dauert zu lange zum laden.

    habs aber nicht mehr im footer drinne....sollte unter dem archiv erscheinen und mir aus dem lexikon einen zufallsartikel anzeigen.

    aber da es nicht ging, hab ich ihn wieder rausgeworfen.....

    edit:

    sah im prinzip so aus...(ist nur der untere teil vom footer, sonst wär es soviel)

  • Hab ich mir gedacht :( So geht das nicht, der Code muss schon an den Anfang eines Loop. Schau mal in deine index.php, da solltest du den Loop erkennen. So fängt ungefähr ein Loop an:

    PHP
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    und da könntest du die Ausgabe dann mit dem query_posts beeinflussen:

    PHP
    <?php if (have_posts()) : ?>
    [COLOR=Red]<?php query_posts('orderby=rand&showposts=1&cat=3'); ?>[/COLOR]
    <?php while (have_posts()) : the_post(); ?>

    Schau mal hier: Template Tags/query posts ? WordDoku

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • also, bin mal am testen auf der startseite.
    hab den flickr-code mal rausgenommen.

    momentan sieht die php so aus:

    Da wo "Zufallsbegriff....." steht soll der Zufallsartikel kommen.
    Mein Loop müsste ja so wie ich das sehe, bei <h2>rund ums rad</h2> anfangen.

    Muss ich jetzt den <?php endwhile;?> weiter runter nehmen nach dem code für den zufallsartikel???

  • dann versuch es mal so:

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • ok, so funktioniert das ganze.......hab nur gerade ein problem festgestellt.

    ich hab bei den ganzen begriffen im lexikon ja keinen more-tag drin, weshalb mir der ganze begriff angezeigt wird.......
    wäre ja nicht weiter schlimm, aber der container ist dafür zu schmal.....so ein ärger.....:confused:

    muss ich mir wohl was einfallen lassen......

    wenn ich deinen code so ansehe, dann muss ich jedesmal im prinzip den loop neu starten und wieder beenden...richtig...??

  • du kannst es mit the_excerpt() versuchen:

    Zeigt die ersten 120 Wörter an: Template Tags/the excerpt ? WordDoku

    Richtig, du kannst immer wieder einen neuen Loop machen. random_query kannst du auch ersetzen, z.B. new_query, blablupp_query ...

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • super,

    jetzt klappt das ganze prima....hab zwischenzeitlich auch noch ein paar fehler korrigiert....schon der hammer.....als ich das flickr teil drin hatte, wurden mir über 400 warnungen angezeigt....jetzt sind es nur noch 26......

    ist ja nur ein kleiner unterschied.....:?

    vielen dank nochmals für deine hilfe.......

    Lefdi

  • naja, ich bzw. der validator kommt noch auf 37: [Invalid] Markup Validation of http://www.radtouren-verzeichnis.de/ - W3C Markup Validator
    Du hast z.B. oft sowas drin:
    <div ... />
    der Slash / schließt aber direkt den DIV wieder ... und weiter unten schließt du ihn noch mal mit </div>

    Du hast sowieso sehr viele DIVs mit style oder align Angaben drin :confused:

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

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