Como obter um número variável de postagens por tipo de publicação no loop principal?

Estou procurando uma maneira de equilibrar o conteúdo na página inicial do meu blog:

O blog tem alguns tipos de postagem, como Poscasts, Vídeos e Blog e eu gostaria de termos 10 Posts na página inicial, mas eu gostaria de fazer 5 deles sempre o último blog.

Fazer 3 checkboxs separadas não resolve o meu problema porque as postagens são misturadas e não haverá sempre muitas postagens dos outros tipos.

Eu poderia pensar na solução para o PHP puro, mas eu gostaria de ter uma idéia sobre como fazer isso usando a API wordpress, qualquer ajuda, a referência será bem-vinda!

Solutions Collecting From Web of "Como obter um número variável de postagens por tipo de publicação no loop principal?"

Se você ainda está procurando uma alternativa que pode ser mais rápida isso pode ajudá-lo:

 < ?php function customBlogFeed() { // The Query $the_query = new WP_Query( array ( 'post_type' => array( 'post', 'page', 'movie', 'book'), 'posts_per_page' => '6' ) ); //Your post_type array is a list of random post_types. You can add whatever you'd like to match your system. // The Loop while ( $the_query->have_posts() ) : $the_query->the_post(); ?> < ?php the_title(); ?> < ?php the_content(); ?> < ?php endwhile; // Reset Post Data wp_reset_postdata(); } ?> 

Então, para obter a saída, coloque < ?php customBlogFeed(); ?> < ?php customBlogFeed(); ?> onde você gostaria que isso fosse exibido.

Se você realmente deseja ter fantasia, você pode se conectar ao filtro Post_limits e limitar o número de postagens por tipo de publicação exibidas. Espero que isso ajude você na sua missão.

PS – Olhe para WP_Query , isso realmente irá ajudá-lo.

Depois de algumas pesquisas, você pode realmente querer olhar para post_clauses para obter essas caracterizações SQL feitas com WP3.1 + Sintaxe

Então, depois de alguns meses. Encontrei a resposta para sua pergunta exata:

 add_action('pre_get_posts', 'custom_main_query', 1); function custom_main_query( $query ) { if ( $query->is_main_query() && is_home() ) { //be super careful with this and to be safe, keep the is_home() //bit there, I've had some funny results without it. $query->query_vars['posts_per_page'] = 3; //displays 3 posts ;) $query->query_vars['post_type'] = array('post'); //and if you wanted multiple cpts <3 return $query; } } 

Felicidades