Obtener términos por IDs con orden específico de IDs
Quiero obtener términos por IDs manteniendo el orden de los IDs. Pero no está funcionando, WordPress cambia automáticamente el orden.
Mi código-
$catsArray = array(159, 155, 143, 153, ......);
$series = get_terms( array(
'taxonomy' => 'ctc_sermon_series',
'number' => 9,
'offset' => $offset,
'include' => $catsArray,
'hide_empty' => false,
) );
Y el resultado-
(
[0] => WP_Term Object
(
[term_id] => 155
[name] => 10
[slug] => 10
[term_group] => 0
[term_taxonomy_id] => 155
[taxonomy] => ctc_sermon_series
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
[1] => WP_Term Object
(
[term_id] => 159
[name] => 14
[slug] => 14
[term_group] => 0
[term_taxonomy_id] => 159
[taxonomy] => ctc_sermon_series
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
[2] => WP_Term Object
(
[term_id] => 153
[name] => Nombre 8
[slug] => nombre-8
[term_group] => 0
[term_taxonomy_id] => 153
[taxonomy] => ctc_sermon_series
[description] => Descripción Nombre 8
[parent] => 0
[count] => 1
[filter] => raw
)
[3] => WP_Term Object
(
[term_id] => 143
[name] => Serie 1
[slug] => serie-1
[term_group] => 0
[term_taxonomy_id] => 143
[taxonomy] => ctc_sermon_series
[description] => Descripción Serie 1
[parent] => 0
[count] => 3
[filter] => raw
)
)
Espero obtener primero el término con ID-159, pero siempre obtengo primero el resultado del ID-155. Necesito obtener el resultado según la secuencia del array de IDs.
Gracias de antemano :)
Entonces, creo que la pregunta es cómo obtener los términos en el orden de los IDs que has proporcionado, que podrían no estar ordenados de forma ascendente o descendente, sino en un orden aleatorio.
Sorprendentemente, creo que hay un atajo para eso en WP - ¿quién lo hubiera pensado? Esto, creo, es lo que quieres usar:
$catsArray = array(159, 155, 143, 153, ......);
$series = get_terms( array(
'taxonomy' => 'ctc_sermon_series',
'number' => 9,
'offset' => $offset,
'include' => $catsArray,
'hide_empty' => false,
'orderby' => 'include', // <---
) );
¡Espero que esto ayude!

Esto podría funcionar para ti, aunque no lo he probado.
$catsArray = array(159, 155, 143, 153, ......);
$series = get_terms( array(
'taxonomy' => 'ctc_sermon_series', // Taxonomía para las series de sermones
'number' => 9, // Número de términos a recuperar
'offset' => $offset, // Desplazamiento
'include' => $catsArray, // IDs de categorías a incluir
'hide_empty' => false, // Mostrar términos aunque estén vacíos
'orderby' => 'term_id', // Ordenar por ID de término
'order' => 'DESC', // Orden descendente (o ASC para ascendente)
) );

Simplemente usa el parámetro 'fields'.
wp_get_post_terms($post_id, 'some_taxonomy', array('fields' => 'ids'))
