Cómo limitar el número de términos (los términos actúan como categorías)

10 sept 2013, 21:32:22
Vistas: 16.4K
Votos: 6

Hola, he creado una taxonomía en un tipo de contenido personalizado que actúa como categoría.

Luego he creado términos que funcionan como categorías.

He creado un widget que muestra todos los términos de la taxonomía. Todo funciona perfectamente.

Pero no entiendo cómo limitar el número de términos a mostrar.

He creado un campo de entrada en mi widget. Así que si ingreso un número, quiero que el widget limite la visualización solo a esa cantidad de términos.

¡Gracias por la ayuda!

El código para mostrar todos los términos es:

$terms = get_terms('new_category');
echo '<ul>';
foreach ($terms as $term) {
    $term_link = get_term_link( $term, 'new_category' );
    echo '<li><a href="' . $term_link . '"><div>' . $term->name . '</div></a></li>';

}
echo '</ul>';
1
Comentarios

¿Has leído la documentación de get_terms?

Milo Milo
10 sept 2013 21:37:17
Todas las respuestas a la pregunta 3
0
número 
    (entero) El número máximo de términos a devolver. Por defecto devuelve todos.

http://codex.wordpress.org/Function_Reference/get_terms

Entonces...

$terms = get_terms('nueva_categoria', array('number' => 5));

Pero existe una buena posibilidad de que algunos de tus términos nunca aparezcan. Obtendrás los primeros cinco o los últimos cinco (en el ejemplo) dependiendo del orden de clasificación. Tal vez prefieras algo como esto:

$terms = get_terms('categoria');
if (!is_wp_error($terms)) {
  $pick = ($pick <= count($terms)) ?: count($terms);
  $rand_terms = array_rand($terms, $pick);
  echo '<ul>';
  foreach ($rand_terms as $key => $term) {
    $term =  $terms[$term];
    $term_link = get_term_link($term);
    var_dump($term_link);
    if (!is_wp_error($term_link)) {
      echo '<li><a href="' . $term_link . '"><div>' . $term->name . '</div></a></li>';
    }
  }
  echo '</ul>';
}
10 sept 2013 21:59:20
0
// Obtener 4 términos de la taxonomía 'new_category'
$terms = get_terms('new_category', array('number' => 4));

// Iniciar lista no ordenada
echo '<ul>';

// Recorrer cada término y mostrar como elemento de lista con enlace
foreach ($terms as $term) {
    $term_link = get_term_link($term, 'new_category');
    echo '<li><a href="' . $term_link . '"><div>' . $term->name . '</div></a></li>';
}

// Cerrar lista
echo '</ul>';
8 jun 2018 14:57:47
0

cambia el valor del número según sea necesario

$terms = get_terms('new_category', 'number=10');
echo '<ul>';
foreach ($terms as $term) {
    $term_link = get_term_link( $term, 'new_category' );
    echo '<li><a href="' . $term_link . '"><div>' . $term->name . '</div></a></li>';

}
echo '</ul>';
10 sept 2013 21:51:14