• hectorasencio

    (@hectorasencio)


    Hola,

    Estoy construyendo un menú desplegable de categorías para la nevegación principal, que debe mostrar los tres últimos posts de cada categoría y subcategoría. Podeís ver un ejemplo de lo que quiero conseguir: http://elitedaily.com.

    Para ello he usado un foreach que genera la lista de categorías, y dentro de el he escrito una WP_Query que filtra los posts usando los elementos que saca el foreach (slugs de categorías).

    Ambos dos bloque funcionan sin problemas por separado, pero al implementarlos juntos el segundo argumento que le paso al WP_Query no funciona.

    Este es el código que he escrito:

    $args = array(
              'orderby' => 'name',
              'order'   => 'ASC'
              );
            $categories = get_categories($args);
            foreach ($categories as $category) {
    
              $opt = array(
                'category_name'   => $category->slug,
                'posts_per_page'  => 3
                );
              $submenu_item = new WP_Query($opt);
              if($submenu_item->have_posts()) : while($submenu_item->have_posts()) : $submenu_item->the_post();
    
                echo '<div id="'.$category->slug.'-menu">';
                echo '<div class="extracto-post large-3 small-1 columns">';
                echo '<span ';
                echo post_class();
                echo '>';
                echo '<div class="extracto-imagen-caja">';
                echo '<a class="extracto-menu-imagen" title="Ver ';
                echo the_title();
                echo '" href="';
                echo the_permalink();
                echo '">';
                echo the_post_thumbnail('portada');
                echo '</a>';
                echo '</div>';
                echo '<div class="extracto-titulo">';
                echo '<a title="Ver ';
                echo the_title();
                echo '" href="';
                echo the_permalink();
                echo '">';
                echo the_title();
                echo '</a>';
                echo '</div>';
                echo '</span>';
                echo '</div>';
                echo '</div>';
    
              endwhile; endif;

    Obviamente hay algo en mi lógica que no está bien, pero no acabo de saber qué.

  • El debate ‘post_per_page no funciona dentro de un foreach’ está cerrado a nuevas respuestas.