Shortcode zum Ausgeben der letzten Beiträge oder Custom Posts Types

Um die letzten Beiträge (Post oder Custom Post Type) auszugeben kann man folgenden Code nutzen, der einen entsprechenden Shortcode definiert:

function wpkb_shortcode_list_recent_posts($attributes)
{
    // Define defaults for attributes
    $attributes = shortcode_atts( array(
        'post_type' => 'post',
        'number_of_posts' => '5',
    ), $attributes );

    // WP_Query arguments
    $args = array(
        'post_type'      => array( $attributes['post_type'] ),
        'posts_per_page' => $attributes['number_of_posts'],
        'order'          => 'DESC',
        'orderby'        => 'date',
    );

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

    // Get posts
    $posts = get_posts( $args );

    // Add posts to list
    foreach ( $posts as $post ) {
        setup_postdata($post);
        $output .= '<li><a href="'. get_the_permalink($post->ID) .'">'. get_the_title($post->ID) .'</a></li>';
    }

    // Add info if there are no matching posts
    if (!$posts) {
        $output .= '<li>No posts found</li>';
    }

    // Reset postdata
    wp_reset_postdata();

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

    // Return output
    return $output;
}

add_shortcode('recent_posts', 'wpkb_shortcode_list_recent_posts');

Durch einfügen des Codes wird der Shortcode [recent_posts] registriert. Dieser Shortcode kann modifiziert werden, um den Post Type sowie die Anzahl der anzuzeigenden Posts mitzugeben:

[recent_posts post_type="kb_entry" number_of_posts="10"]

Schreibe einen Kommentar