Publicaciones de consulta: cómo excluir resultados si la publicación está en varias categorías

4

Diga que tengo 3 categorías: A, B, C y otra categoría D a la que también se pueden asignar las publicaciones en A, B, C. D es para denotar la publicación destacada para la categoría y, en teoría, solo una publicación para cada (A, B, C) también se asignará como D.

Puedo encontrar la publicación destacada para cada multa de categoría usando category__and.

Tengo una necesidad de hacer una lista del resto de la categoría menos la publicación destacada a la derecha de la publicación destacada en la página de inicio. Así, por ejemplo, quiero obtener una lista de la categoría A, pero quiero excluir la publicación destacada que se marcaría como categoría A y categoría D.

Intenté usar "category_ in" seguido de "category _not_in" pensando que lograría esto, pero la "category__not_in" parece anular y simplemente encontrar todo en todas las categorías excepto la categoría excluida.

Si tengo las cosas mal estructuradas, por favor hágamelo saber. Intento simplificar las cosas para el propietario del sitio al no tener que recordar ingresar texto para una etiqueta (publicación destacada). Prefiero que solo marquen las casillas de verificación en la lista de categorías.

Resumiendo, mi código necesita hacer dos cosas. Por ejemplo:

Encuentra la "publicación destacada": ENCUENTRA A y D. Esto esta hecho. Encuentre todo en la categoría EXCEPTO publicación destacada: Encuentre A, excluya (A y D).

Cualquier ayuda sería muy apreciada. Soy nuevo en Wordpress pero no estoy codificando. Solo trato de familiarizarse con la funcionalidad.

    
pregunta Craig Coston 18.07.2012 - 21:45

1 respuesta

1

Probablemente esta no sea una forma "pura" de hacerlo, pero este código crea una serie de ID de publicaciones destacadas y luego las excluye de los futuros get_posts.

$featuredPosts = get_posts('category'=>'D','numberposts'=>'-1');
$fPId = array();
foreach ($featuredPost as $currentPost)
{
  array_push($fPId,$currentPost->ID);
}
$aPosts = get_posts('category' => 'a', 'exclude'=>$fpId);
$bPosts = get_posts('category' => 'b', 'exclude'=>$fpId);
$cPosts = get_posts('category' => 'c', 'exclude'=>$fpId);
    
respondido por el fdsa 19.07.2012 - 02:25

Lea otras preguntas en las etiquetas