Saludos panasd.
Fíjate en el loop que aparece en el codex http://codex.wordpress.org/The_Loop allí tienen un ejemplo de como dar un diferente estilo a una categoría «Style Posts From Some Category Differently» que en tu caso será para dar estilo diferente a las tres primeras entradas.
Veamos el siguiente código:
<!-- Start the Loop. -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
...
<?php if ( in_category('3') ) { ?>
<div class="post-cat-three">
<?php } else { ?>
<div class="post">
<?php } ?>
...
<?php endwhile; else: ?>
Primero que nada debemos crear una variable que sirva de contador para determinar cuál es el post 1,2,3…N. A el siguiente trozo de código:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
Le agregamos:
<?php $i=0 if ( have_posts() ) : while ( have_posts() ) : the_post(); $i++?>
Ya tenemos la variable ($i) que se va incrementando por cada post que se va mostrando.
Como no nos interesa la categoría a la cuál pertenece el post pero si el número de post mostrado tendremos que cambiar:
<?php if ( in_category('3') ) { ?>
por esto:
<?php if ( $i < 3 ) { ?>
Para al final colocar la case que muestren las tres primeras noticias en columnas continuas y el resto ocupando el ancho total. Usaré las clases vertical y horizontal como ejemplo:
<?php if ( $i < 3 ) { ?>
<div class="vertical">
<?php } else { ?>
<div class="horizontal">
<?php } ?>
Estoy seguro que tu index o home no tiene el mismo código pero usando el ejemplo del loop de WordPress puedes lograr lo que buscas.
Saludos y no olvides comentar como te resulta.
Iniciador del debate
panasd
(@panasd)
Muchas gracias Shinjiru_fred, estoy probandolo, pero cuando pongo esa plantilla a funcionar, me sale la página en blanco, como cuando tocas el functions.php y lo haces mal… De momento lo tengo apañado con css nth-child, pero quiero que se haga mediante php. Espero tu respuesta, muy agradecido.
Un saludo
Iniciador del debate
panasd
(@panasd)
Pego el codigo de la plantilla creada:
<?php
/*
Template Name: Portada Nueva
*/
get_header(); ?>
<div id="main-content" class="main-content">
<?php
if ( is_front_page() && twentyfourteen_has_featured_posts() ) {
// Include the featured content template.
get_template_part( 'featured-content' );
}
?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<!-- Start the Loop. -->
<?php $i=0 if ( have_posts() ) : while ( have_posts() ) : the_post(); $i++?>
<?php if ( $i < 3 ) { ?>
<div class="vertical">
<?php } else { ?>
<div class="horizontal">
<?php } ?>
<?php endwhile; else: ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar( 'content' ); ?>
</div><!-- #main-content -->
<?php
get_sidebar();
get_footer();