Support » Allgemeine Fragen » zufällige Anordnug von Beiträgen

  • Gelöst chiggidi

    (@chiggidi)


    Hallo, ich würde gerne die Beiträge EINER Kategorie (nur diese eine) zufällig anordnen, das heisst: wenn die Kategorie ausgewählt wird soll ein zufällig generierter Beitrag erscheinen, bei jedem weiteren Aufruf ein anderer. Ich habe es bereits mit dem „Content Randomizer“ Plugin versucht, jedoch ohne Erfolg. Vielleicht liegt es daran, dass dieses Plugin nur bis zur WordPress version 4.6.6 getestet wurde, vielleicht ist dieses Plugin aber auch gar nicht für den von mir gewünschten Effekt gedacht? Ich bin Anfänger und würde mich daher über Tipps freuen.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
  • Dazu reichen eigentlich ein paar zusätzliche Zeilen Code in der functions.php deines Child Themes (alternativ ein Code Snippet beim Plugin Code Snippets):

    // use random order for category travel
    add_action( 'pre_get_posts', 'random_order_cat_travel' );
    function random_order_cat_travel( $query ) {
    	if ( $query->is_main_query() && ! is_admin() ) {
    		if ( $query->is_category( 'travel' ) ) {
    			$query->set( 'orderby', 'rand' );
    		}
    	}
    }

    (ich habe hier die Kategorie „travel“ verwendet – das musst du natürlich entsprechend anpassen)

    • Diese Antwort wurde geändert vor 6 Jahren, 7 Monaten von Bego Mario Garde. Grund: Syntaxfehler behoben
    Thread-Starter chiggidi

    (@chiggidi)

    Oh,oh, das ging schief. Habe den Code in der function.php eingegeben, worauf die Meldung: Parse error: „syntax error, unexpected ‚&‘ in /www/htdocs/user/xn--sei-mal-verrckt-bwb.com/wp-content/themes/catch-base-pro/functions.php on line 31“ ich habe den Code wieder gelöscht, doch die Meldung blieb – und jetzt komme ich nicht mehr auf meine Seite.

    Moderator PraetorIM

    (@praetorim)

    Poste bitte einmal die passenden Zeilen (Zeile 31 und 1-2 Zeilen davor und danach) Deiner functions.php.

    Thread-Starter chiggidi

    (@chiggidi)

    Das würde ich sehr gerne, aber leider kann ich mich nicht einmal mehr auf meine Seite einloggen. Da erscheint bloss noch obengenannte Fehlermeldung.. Jetzt ist es ein ernsthaftes Problem und ich habe keine Ahnung, wie ich es lösen soll. Ich wäre sehr erleichtert, wenn mir jemand helfen könnte?

    Moderator PraetorIM

    (@praetorim)

    Dann lösen wir dieses Problem zunächst einmal auf andere Weise:
    Log Dich zunächst per FTP auf Deinen Webspace ein und wechsle in das Verzeichnis wp-content/themes.

    Dort findest Du u.a. das Verzeichnis mit dem von Dir verwendeten Theme. Diesen Ordner benenne bitte einmal um. Das führt dazu, dass WordPress Dein Theme zunächst einmal nicht mehr findet und auf ein Standardtheme wechselt (Twenty seventeen o.ä., je nachdem, was bei Dir noch installiert ist). Damit dürfte die Website zumindest wieder zugänglich sein -wenn auch mit einem anderen Theme- und Du dürftest auch wieder in Dein Backend kommen.

    Und wenn Du dann schon einmal per FTP mit Deinem Webspace verbunden bist, wechsel einmal in das Verzeichnis Deines Themes (das eben umbenannte) und such dort in der functions.php die o.g. Zeilen heraus.

    Thread-Starter chiggidi

    (@chiggidi)

    Danke, das hat schon einmal geklappt. In der functions.php meines Themes steht:

    // use random order for category glueckskekse add_action( 'pre_get_posts', 'random_order_cat_glueckskekse' );
    function random_order_cat_glueckskekse( $query ) {
    if ( $query->is_main_query() && ! is_admin {
    if ( $query->is_category( 'glueckskekse' ) ) {
    $query->set( 'orderby', 'rand' );

    Zeile 31 ist in der Mitte („function random…)

    Moderator PraetorIM

    (@praetorim)

    // use random order for category glueckskekse add_action( 'pre_get_posts', gehört nicht in eine, sondern in zwei Zeilen:

    // use random order for category glueckskekse 
    add_action( 'pre_get_posts', 'random_order_cat_glueckskekse' );

    Halt so, wie oben von Bego beschrieben.

    Thread-Starter chiggidi

    (@chiggidi)

    Ja, da ist beim Kopieren etwas schiefgelaufen, aber danke für die Anmerkung. Ich habe mir den Code nochmals angeschaut und habe in mehreren Zeilen „&&ng“ anstelle von „->“ entdeckt. Ist auch beim Kopieren passiert. Und daran lag’s dann auch, dass es nicht funktioniert hat. Entschuldigung. Bin wie gesagt Anfänger.
    Das Zufällige Anordnen funktioniert jetzt, zeigt aber immer noch ALLE Beiträge an. Ist es möglich, dass man jeweils nur EINEN (zufälligen) sehen kann?

    Moderator PraetorIM

    (@praetorim)

    Füg in den Code noch ein zweites query->set() (nach dem schon dort stehenden) ein:
    $query->set( 'posts_per_page', 1 );

    Thread-Starter chiggidi

    (@chiggidi)

    Super, jetzt hat’s geklappt. Vielen Dank für eure Hilfe!!

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
  • Das Thema „zufällige Anordnug von Beiträgen“ ist für neue Antworten geschlossen.