Получить список всех страниц Grandchild

У меня есть следующая иерархия страниц, все из которых находятся на верхней странице (TOP) с ID = 1:

  • MID1
    • gc1
    • GC2
  • MID2
    • GC3
    • GC4

Я хотел бы сделать запрос WP_Query , который вернет случайные страницы, которые являются внуками TOP – в этом примере я хочу случайным образом выбирать из gc1, gc2, gc3 и gc4, но исключать mid1 и mid2. Каков наилучший способ сделать это?

Solutions Collecting From Web of "Получить список всех страниц Grandchild"

Моя нынешняя идея:

  1. Используйте get_pages чтобы получить все потомки TOP и поместить идентификаторы в массив arrayAll .
  2. Затем запустите get_pages снова с parent=1 чтобы получить только прямые дети TOP. Поместите их в массив arrayChildren .
  3. Запустите в php arrayGrandchildren = array_diff(arrayAll, arrayChildren) чтобы получить список всех страниц из первого массива (который содержит всех потомков TOP), которые не включают прямых детей.
  4. В WP_Query установите ' post_in=arrayGrandchildren&order=rand ', чтобы получить случайные записи из списка внуков.