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)
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>';
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.