WP_Query()
:$query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => 3,
'meta_key' => 'post_counter', // for example
'orderby' => 'meta_value_num',
'order' => 'DESC'
) );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo '<h2>' . $post->post__title . '</h2>';
if( has_post_thumbnail() ) {
the_post_thumbnail();
}
echo '<p>' . $post->post__date . '</p>';
}
} else {
// No posts :(
}
// Сбрасываем $post.
wp_reset_postdata();
querySelectorAll
универсальный, а getElementsByClassName
узконаправленный. Узконаправленное решение всегда быстрее универсального. А вообще они совершенно по-разному работают.