Zufälliger Artikel der älter ist als x Tage

  • Hallo zusammen!

    Ich zeige auf meinem Blog einen zufällig ausgewählten Artikel an. Nun möchte ich es aber einschränken. Und zwar in sofern, das nur Artikel ausgewählt werden, die älter als x Tage sind.

    Das müsste ja eigentlich mit der Funktion gehen, die auch einen Hinweis in die Artikel einblendet, das der Artikel älter ist.

    Die sieht ja so aus:

    PHP
    <?php $posting_time = get_the_time('U'); ?>
      <?php if ( (time() - $posting_time) > (3600*24*60) ) :  ?>



    Mein Code für den Zufälligen Artikel sieht so aus:

    PHP
    <?php
        query_posts(array('orderby' => 'rand', 'showposts' => 1));
        if (have_posts()) : while (have_posts()) : the_post(); ?>
           <h1>
               <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
           </h1>
        <?php the_excerpt(); ?>
        <?php endwhile;
        endif; ?>
    <?php wp_reset_query(); ?>



    Wie verheirate ich die beiden Codes jetzt so miteinander, damit eben nur Artikel angezeigt werden die meinetwegen älter als 60 Tage sind?

    Das will bei mir einfach nicht hinhauen!

    Danke für Hilfe im voraus!

    Marcus

    • 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

  • Ich korrigiere mich: Es ist der Filter posts_where

    PHP
    function filter_where( $where = '' ) {
    	$where .= " HIER DEIN SQL STATEMENT ";
    	return $where;
    }
    add_filter( 'posts_where', 'filter_where' );
    
    
    $query = new WP_Query( $query_string );
  • Hallo zusammen!

    Ich habe es mit Eurer Hilfe ja anscheinend tatsächlich hinbekommen, das der Code soweit zu funktionieren schein.

    Er sieht jetzt wie folgt aus:



    Leider werden jetzt aber auch auf dem Rest der Seite nur Posts angezeigt, die älter als der in der Funktion angegebene Wert sind.

    Wie kriege ich das jetzt wieder hingebogen, das auch die restlichen Artikel wieder angezeigt werden?

    Danke für Eure Hilfe nochmals und im voraus.

    Marcus

  • Hallo nochmals!

    Es sieht so aus, als ob ich mein Problem gelöst hätte.

    Mein Code in der Function.php schaut nun so aus:

    Code
    function filter_where( $where = '' ) {
     // only older (<) as 5 days
            $where .= " AND post_date < '" . date('Y-m-d', strtotime('-60 days')) . "'";
        return $where;
    }
    add_filter( 'posts_where', 'filter_where' );



    Der in der index.php so:



    EDIT: Man sollte sich wohl nie zu früh freuen.

    Denn nun ist das Problem, das, klickt man die neuesten Artikel an, diese auf eine Fehlerseite laufen.

    Und ich habe plötzlich statt 15 Seiten weit über 100 *grübel*

    Wo läuft hier jetzt der Hase falsch? Kann mir das jemand erklären?

    Vielen Dank

  • Hallo zusammen!

    Das Problem hat sich tatsächlich noch erledigt. Wie, das könnt ihr hier nachlesen.

    Mich würde jetzt noch interessieren, ob und wie es möglich ist, den Post jetzt nicht als erstes anzuzeigen, sondern zwischen den 4 und 5 Artikel. Oder auch irgendwo anders zwischen den neueren Artikeln.

    Hat da jemand eine Lösung?

    Vielen Dank im voraus,

    Marcus

Jetzt mitmachen!

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