• Opgelost Patrick2309

    (@patrick2309)


    Ik had graag de titels van een aantal toekomstige posts in een widget geplaatst. Tot op een paar dagen lukte dat door de onderstaande code aan de functions.php van mijn thema toe te voegen. Maar nu krijg ik een fatale fout! Kan er iemand me helpen aub?

    function wpb_upcoming_posts() { 
        // The query to fetch future posts
        $the_query = new WP_Query(array( 
            'post_status' => 'future',
            'posts_per_page' => 3,
            'orderby' => 'date',
            'order' => 'ASC'
        ));
     
    // The loop to display posts
    if ( $the_query->have_posts() ) {
        echo '<ul>';
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
            $output .= '<li>' . get_the_title() .' ('.  get_the_time('d-M-Y') . ')</li>';
        }
        echo '</ul>';
     
    } else {
        // Show this when no future posts are found
        $output .= '<p>No posts planned yet.</p>';
    }
     
    // Reset post data
    wp_reset_postdata();
     
    // Return output
     
    return $output; 
    } 
    // Add shortcode
    add_shortcode('upcoming_posts', 'wpb_upcoming_posts'); 
    // Enable shortcode execution inside text widgets
    add_filter('widget_text', 'do_shortcode');
5 reacties aan het bekijken - 1 tot 5 (van in totaal 5)
  • Hoi Patrick,

    Ik zie 2 dingen die niet kloppen.

    Je vergeet aan het begin de output te initiëren.
    Voeg dit toe boven // The loop to display posts

    // Initialize output
    $output = '';

    En je echoed de ul tag, dat moet ook via $output:

    $output .= '<ul>';
    $output .= '</ul>';

    Guido

    Thread starter Patrick2309

    (@patrick2309)

    Dag Guido,

    bedankt voor je snelle reactie.

    Ik heb de code niet geschreven, maar gevonden op het internet. Ze heeft lang goed gewerkt, maar plots niet meer.

    Ik heb je raad gevolgd en de code zoals hieronder aangepast. Ik krijg echter nog steeds de foutmelding “There has been a critical error on this website.” als resultaat. Mocht je nog iets zien, dan hoor ik het graag.

    Patrick

    function wpb_upcoming_posts() { 
    
        // The query to fetch future posts
        $the_query = new WP_Query(array( 
            'post_status' => 'future',
            'posts_per_page' => 3,
            'orderby' => 'date',
            'order' => 'ASC'
        ));
    // Initialize output
           $output = ''; 
    // The loop to display posts
    if ( $the_query->have_posts() ) {
        echo '<ul>';
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
            $output .= '<li>' . get_the_title() .' ('.  get_the_time('d-M-Y') . ')</li>';
        }
        echo '</ul>';
     
    } else {
        // Show this when no future posts are found
        $output .= '<p>No posts planned yet.</p>';
    }
     
    // Reset post data
    wp_reset_postdata();
     
    // Return output
     
    return $output; 
    } 
    // Add shortcode
    add_shortcode('upcoming_posts', 'wpb_upcoming_posts'); 
    // Enable shortcode execution inside text widgets
    add_filter('widget_text', 'do_shortcode');
    
    $output .= '<ul>';
    $output .= '</ul>';

    Hoi,

    Onderaan heb je mijn gewijzigde code toegevoegd, maar ik bedoel dat je daarmee dit uit jouw code moest vervangen:

    echo '<ul>';
    echo '</ul>';

    Maar voor de rest werkt het hier prima, ook als ik de shortcode in een tekst widget zet.

    Activeer anders debugging eens via bestand wp-config in de hoofdmap van je WordPress installatie. Want dan wordt er een log bijgehouden met daarin misschien meer info.

    Guido

    Thread starter Patrick2309

    (@patrick2309)

    Guido,

    bedankt voor de hulp!

    Ik kan weer verder!

    Patrick

    Graag gedaan en succes!

    Guido

5 reacties aan het bekijken - 1 tot 5 (van in totaal 5)
  • Het onderwerp ‘Toekomstige posts tonen’ is gesloten voor nieuwe reacties.