Categoría de Wordpress Niño Mostrar todos los mensajes

3

Estoy creando una página de WordPress donde todas mis publicaciones en las categorías secundarias del equipo se muestran en una cuadrícula. Conseguí esto trabajando con el siguiente código. El formato y el diseño general son excelentes, sin embargo, solo muestra las 5 publicaciones más recientes en la categoría secundaria en lugar de todas ellas. En mi cuenta de Wordpress tengo 7 publicaciones que deberían mostrarse. ¿Cómo debo recuperar las publicaciones para que las muestre todas?

                <ul class="faces">

 <?php
$categories = get_categories( 'child_of=2' );  
foreach  ( $categories as $category ) {

    echo '<div class="grid-row"><h2>'.$category->name.'</h2></div>';

    $cat_posts = get_posts( 'cat='.$category->term_id );
    $end = count( $cat_posts ) - 1;
    $i = 0;
    foreach ( $cat_posts as $post ) {
        setup_postdata( $post );
        $face = get_field( 'face' );
        $name = get_field( 'fullname' );

        if ( $i % 6 === 0 ) {
            echo '<div class="grid-row">';
        }
      echo '<div class="obj">';

        echo wp_get_attachment_image($face)
            . '<div class="name">'.$name.'</div>';

        echo '</div>';
                if ( $i % 6 === 5 ) {
            echo '</div>';
        }
               $i++;
    }
}?>
    </ul>

// css

div.grid-row {
    width: 100%;

   height: 100%;
    position: relative;
    overflow: hidden;
}
div.obj{
float: left;
    position: relative;
    padding-right: 10px;
}
.faces{
    width: 1000px;

}

REVISADOPARAPUBLICARABAJO:

REV PARA POST ABAJO:

<?php
$categories = get_categories( 'child_of=2' );  
foreach  ( $categories as $category ) {

    echo '<div class="grid-row"><h2>'.$category->name.'</h2></div>';
    $args1 = array( 'posts_per_page' => -1, 'cat='.$category->term_id );
    $cat_posts = get_posts( $args1 );
    $end = count( $cat_posts ) - 1;
    $i = 0;
    foreach ( $cat_posts as $post ) {
    $post_category = get_the_category($post->ID);
    if($post_category->cat_name == $category->name){
        setup_postdata( $post );
        $face = get_field( 'face' );
        $name = get_field( 'fullname' );

        if ( $i % 6 === 0 ) {
            echo '<div class="grid-row">';
        }
      echo '<div class="obj">';

       echo '<div class="faceThumb">';
       echo wp_get_attachment_image($face);
       echo '</div>';
          echo '<div class="name">';
          echo $name;
          echo '</div>';

        echo '</div>';
                if ( $i % 6 === 5 ) {
            echo '</div>';
        }
        }
               $i++;

    }
}?>
    
pregunta BDGapps 28.07.2013 - 07:27

2 respuestas

0

Uno de los argumentos que puede proporcionar a get_posts es posts_per_page. Si no incluye esto, entonces se establecerá de forma predeterminada la configuración de Mostrar páginas como máximo en la página de Lectura de su configuración. enlace . Sí, sé que el hilo del foro tiene 2 años, pero confirma la sospecha que tuve después de leer enlace y la Fuente Archivo listado en la parte inferior de esa página.

    
respondido por el lonehorseend 28.07.2013 - 09:21
0

Puede ser mucho más simple. No sé qué es get_field , creo que es su función personalizada ... pero ¿por qué no usar campos personalizados estándar y publicar una miniatura en el futuro? De todos modos

$categories = get_categories( 'child_of=3' ); 

foreach  ( $categories as $category ) {
  $i = -1;
  echo '<div class="grid-row"><h2>' . $category->name . '</h2></div>';
  $args = array( 'posts_per_page' => -1, 'cat' => $category->term_id );
  $cat_posts = new WP_Query($args);
  if ( $cat_posts->have_posts() ) : while ( $cat_posts->have_posts() ) :
    $i++;
    $cat_posts->the_post();
    $face = get_field( 'face' );
    $name = get_field( 'fullname' );
    if ( $i % 6 == 0 ) echo '<div class="grid-row">';
    echo '<div class="obj">';
    echo '<div class="faceThumb">';
    echo wp_get_attachment_image($face);
    echo '</div><div class="name">' . $name . '</div></div>';
    if ( ($i % 6 == 5) || $i == ($cat_posts->post_count - 1) ) echo '</div>';
  endwhile; endif;
}
wp_reset_postdata();
    
respondido por el gmazzap 31.07.2013 - 03:48

Lea otras preguntas en las etiquetas