Artikel einer Kategorie nach Inhalt eines Spezialfelds sortieren

In WordPress sollen veröffentlichte Artikel einer bestimmten Kategorie, die allesamt ein benutzerdefinierte Feld (Custom Field) haben, das ein Datum im Format JJJJ-MM-TT, also z.B.: 2009-12-20, enthält, nach eben diesem benutzerdefinierte Feld aufsteigend sortiert ausgegeben werden, sofern das Datum nicht bereits in der Vergangenheit liegt.

$args = array(
    'meta_key' => '[[ Name of Custom Field ]]',
    'orderby' => 'meta_value',
    'order' => 'ASC'
    );

$sort_query = new WP_Query($args);
if ( $sort_query->have_posts() ) : ?>
    <! – pagination here – >
    <?php while ( $sort_query->have_posts() ) : $sort_query->the_post(); ?>

        <! – Whatever shall be displayed – >

    <?php endwhile; ?>
    <! – pagination here – >

    <?php wp_reset_postdata(); ?>

<?php else: ?>
    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

Besser wäre eine Lösung, die ausschließlich auf Zahlen basierende Datumsangaben enthält. Anstelle des Datumsformats JJJJ-MM-TT ist es daher ratsam, auf das Datumsformat JJJJMMTT zu setzen und das benutzerdefinierte Feld nicht nach meta_value, sondern nach meta_value_num zu sortieren.

$args = array)
    'meta_key' => '[[ Name of Custom Field ]]',
    'orderby' => 'meta_value',
    'order' => 'ASC'
    );

Super, nicht?