Me gustaría mostrar 4 publicaciones relacionadas (sin un complemento) en la parte inferior de mi blog. Sin embargo, quiero excluir una determinada categoría.
Por ejemplo, si mi publicación de blog está en la categoría 2
y 3
, quiero ignorar la categoría 2
y solo buscar publicaciones de la categoría 3
. Aquí está la parte relevante de single.php
:
Nota: mi código de abajo actualmente no funciona.
$related = get_posts( array(
'category__in' => wp_get_post_categories( $post->ID ),
'numberposts' => 4,
'orderby' => 'date',
'post__not_in' => array( $post->ID ),
'cat' => '-2'
) );
if( $related ) {
foreach( $related as $post ) {
setup_postdata($post);
/** .. **/
}
}
Update: La categoría 2
es tan frecuente que quiero ignorarla en la búsqueda, pero no ocultar esos resultados.
Por ejemplo, esta publicación está en la categoría 2
y 3
. Quiero encontrar otras publicaciones con la categoría 3
, y tal vez tengan la categoría 2
, pero solo quiero buscar por categoría 3
.
Actualización 2: Tengo este código a continuación y creo que ahora funciona correctamente:
$cat_ids = get_the_category();
if( ! empty( $cat_ids ) ) {
$post_cat_ids = array();
foreach( $cat_ids as $cat_id ) {
if( $cat_id->cat_ID != 2 ) {
$post_cat_ids[] = $cat_id->cat_ID;
}
}
}
$related = get_posts( array(
'category__in' => wp_get_post_categories( $post->ID ),
'numberposts' => 4,
'orderby' => 'date',
'exclude' => array( $post->ID ),
'category' => $post_cat_ids
) );