Obține termeni după ID-uri cu ordinea ID-urilor

2 feb. 2017, 21:29:19
Vizualizări: 20.1K
Voturi: 6

Vreau să obțin Termeni după ID-uri cu ordinea ID-urilor. Dar nu funcționează, WP schimbă automat ordinea.

Codul meu-

$catsArray = array(159, 155, 143, 153, ......);
$series = get_terms( array(
              'taxonomy' => 'ctc_sermon_series',
              'number'  =>  9,
              'offset'  =>  $offset,
              'include' => $catsArray,
              'hide_empty'  => false, 
            ) );

Și rezultatul-

(
    [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] => Name 8
            [slug] => name-8
            [term_group] => 0
            [term_taxonomy_id] => 153
            [taxonomy] => ctc_sermon_series
            [description] => Name 8 Des
            [parent] => 0
            [count] => 1
            [filter] => raw
        )

    [3] => WP_Term Object
        (
            [term_id] => 143
            [name] => Series 1
            [slug] => series-1
            [term_group] => 0
            [term_taxonomy_id] => 143
            [taxonomy] => ctc_sermon_series
            [description] => Series 1 Description
            [parent] => 0
            [count] => 3
            [filter] => raw
        )

)

Mă aștept ca rezultatul termenului cu ID-159 să fie primul, dar de fiecare dată primesc rezultatul ID-155 primul. Am nevoie să obțin rezultatul în secvența array-ului de ID-uri.

Mulțumesc anticipat :)

0
Toate răspunsurile la întrebare 3
0
17

Deci cred că întrebarea este cum să obțineți termenii în ordinea ID-urilor pe care le-ați furnizat - care s-ar putea să nu fie sortate crescător sau descrescător, ci într-o ordine aleatorie.

Surprinzător, cred că există o comandă rapidă pentru asta în WP - cine ar fi crezut? Aceasta, cred eu, este ceea ce doriți să utilizați:

$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', // <--- 
        ) );

Sper că acest lucru vă ajută!

2 feb. 2017 23:01:21
2

Aceasta ar putea funcționa pentru tine, deși nu am testat.

$catsArray = array(159, 155, 143, 153, ......);
$series = get_terms( array(
              'taxonomy' => 'ctc_sermon_series', // Taxonomia pentru seriile de predică
              'number'  =>  9, // Numărul de termeni de returnat
              'offset'  =>  $offset, // Offset pentru paginare
              'include' => $catsArray, // Include doar ID-urile specificate
              'hide_empty'  => false, // Afișează și termenii goi
              'orderby' => 'term_id', // Sortează după ID-ul termenului
              'order' => 'DESC', // sau ASC - Ordine descrescătoare sau crescătoare
            ) );
2 feb. 2017 22:49:46
Comentarii

De fapt, vreau să obțin termenii în ordinea exactă a array-ului, nu în ordinea term_id.

Arif Khan Arif Khan
2 feb. 2017 22:57:58

am înțeles. răspunsul lui @MacPrawn este ceea ce cauți. am votat

Anwer AR Anwer AR
2 feb. 2017 23:17:41
0

Pur și simplu folosește parametrul 'fields'.

wp_get_post_terms($post_id, 'some_taxonomy', array('fields' => 'ids'))

Citește mai multe despre această funcție https://wp-kama.com/function/wp_get_post_terms

13 sept. 2022 10:27:47