Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Excluir categoría!

Estas en el tema de Excluir categoría! en el foro de WordPress en Foros del Web. Hola! No se como arreglar esto por más que leo, veamos: Tengo un query para excluir una categoría: Código PHP: <?php query_posts ( 'showposts=6&cat=-3' );  ?> ...
  #1 (permalink)  
Antiguo 13/04/2011, 03:25
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 23 años, 2 meses
Puntos: 59
Excluir categoría!

Hola!
No se como arreglar esto por más que leo, veamos:

Tengo un query para excluir una categoría:

Código PHP:
<?php query_posts('showposts=6&cat=-3'); ?>
<?php 
if (have_posts()) : while (have_posts()) : the_post(); ?>
Bien, excluye la categoría, pero no la incluye si el mismo post está en varias categorías.

Si una entrada está en la categoría 3, no sale, pero si está en la 3 y la 6 tampoco, y claro quiero que salga si está en otra categoría!

Se puede hacer?
__________________
Cool Village
@Wakkos
  #2 (permalink)  
Antiguo 14/04/2011, 15:48
Avatar de tury3001  
Fecha de Ingreso: abril-2011
Mensajes: 7
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Excluir categoría!

Bueno, no veo la manera de filtrarlo desde el query. Tampoco busqué mucho porque se me ocurrió algo que no es mejor, pero que soluciona tu problema, o al menos eso me parece.

Prueba este código:

Código PHP:
Ver original
  1. if (have_posts()) : while (have_posts()) : the_post();
  2.         $post_categories = wp_get_post_categories(get_the_ID());
  3.      
  4.         if (count($post_categories)==1 && $post_categories[0]==3)
  5.             continue;

La solución que propongo consiste en filtrar el post posteriormente a haber sido traído desde la base de datos a través de la consulta.
La función wp_get_post_categories devuelve un array con los IDs de las categorías del post actual. El parámetro que se le pasa es el ID del post.

Luego viene el if. Si hay una única categoría en este post y esa categoría es la 3, saltamos el paso del ciclo con continue y seguimos al próximo post.

Espero que te sirva.
Cuéntame como te fue

Saludos!
  #3 (permalink)  
Antiguo 14/04/2011, 21:15
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 18 años, 4 meses
Puntos: 223
Respuesta: Excluir categoría!

En el API de WordPress la exclusion de categorias tiene mucho peso, si le dices que saque la categoria X, todos los post son ignorados para el resto del query.

Tendrias que hacer la exclusión fuera del API, como tury3001 te indica.
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #4 (permalink)  
Antiguo 16/04/2011, 02:47
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 23 años, 2 meses
Puntos: 59
Respuesta: Excluir categoría!

Muchas gracias por ambas respuestas! Pero no me funciona =(

Y sim tengo un reset query porsia xD

Lo que he hecho como es mi blog personal, es poner las categorías que deben salir, en vez de excluir la que no quiero que salga...

Pero seguiré leyendo sobre la función que me poneís a ver si se puede apañar para que funcione
__________________
Cool Village
@Wakkos
  #5 (permalink)  
Antiguo 16/04/2011, 08:47
Avatar de Nicoeas  
Fecha de Ingreso: abril-2011
Ubicación: Argentina
Mensajes: 85
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Excluir categoría!

mirá, proba con ésto:
Código PHP:
Ver original
  1. <li><a href="<?php bloginfo('url'); ?>">Inicio</a></li><?php wp_list_categories('sort_column=name&title_li=&depth=1&exclude=5,6,7,8,9,10,11,12,14,15,16,17,1,773,786'); ?>
  2. </ul>

nose si es para un menu o que pero yo brobaría con eso.... cualquier cosa avisa...
__________________
Nicoeas
  #6 (permalink)  
Antiguo 19/04/2011, 04:14
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 23 años, 2 meses
Puntos: 59
Respuesta: Excluir categoría!

Gracias Nicoeas, pero no, quiero que el loop me excluya un artículo que esté en una categoría pero no lo excluya si sale en otra más.
__________________
Cool Village
@Wakkos
  #7 (permalink)  
Antiguo 19/04/2011, 08:12
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: Excluir categoría!

Wakkos, en el caso de seleccionar entre posts, el trabajo debe hacerse dentro del bucle. Prueba insertando esto justo después del Loop:

Código PHP:
Ver original
  1. if(have_posts()) : while(have_posts()) : the_post(); // Sólo como referencia. no copies esta línea
  2.  
  3.     $catt = get_the_category(get_the_ID());
  4.     foreach($catt as $cc)
  5.         $ccid .= $cc->cat_ID == 3 ? true : false;
  6.     if(count($catt) == 1 and $ccid) continue;
  7. ...
Explicando un poco la última línea: si el conteo de categorías asignadas es 1 y la ID de esa categoría es 3, entonces descartarlo y continuar con la siguiente iteración. Es decir, WP también publicará todas las entradas bajo la categoría 3, siempre y cuando también se encuentren asignadas a otras.
  #8 (permalink)  
Antiguo 26/04/2011, 13:10
Avatar de Wakkos
Colaborador
 
Fecha de Ingreso: octubre-2001
Ubicación: (cerca)
Mensajes: 1.795
Antigüedad: 23 años, 2 meses
Puntos: 59
Respuesta: Excluir categoría!

Wow! lo siento pero tenía una semana atareada y no había podido probarlo. Como siempre: Genio!

Ese código funciona a la perfección!

Ahora puedo agregar algunos post del blog al portfolio en http://www.coolvillage.es. como por ejemplo http://www.coolvillage.es/ilustracion-pump-it-up/ que está en el Blog y en el Portfolio.

Gracias Meta!
__________________
Cool Village
@Wakkos

Etiquetas: codex, excluir, query, categorias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:49.