Виведення дочірніх таксономій

Є необхідність вивести користувальницькі таксономії.

Є батьківські таксономії – 1. Керівництво. 2. Офіс і т.д. І є дочірні таксономії 1. Директора. 2. Менеджери, що належать до батьківської таксономії «Керівництво».

У результаті отримую список всіх користувацьких таксономій (рубрик) у таксономії «our_personal».

Тільки от по ТЗ батьківські таксономії я вивів у меню сайту, а дочірні треба вивести окремо. Завдання. вивести список дочірніх таксономій?

PS: Уточнення. В даний момент при переході за посиланням батьківської таксономії відкриваються лише пости, що належать до цієї таксономії. Тобто виходить що й списки дочірніх таксономій на сторінці повинен відноситься тільки до певної батьківської таксономії.

Таксономії не мають ієрархії. Ієрархія може бути у термів.

Серед параметрів функції get_terms() є child_of, за допомогою якого легко можна отримати масив дітей заданого терма.

Дякую. Працює. Проте вдається виводити лише певні таксономії всім сторінок разом. Тобто існує батьківська таксономія з ID=7. Вказую 'child_of' => 7, і в результаті отримую дочірні таксономії від батьківської у ID=7. Але виводяться вони всім сторінок відразу.

Тобто виходить що треба зробити так, щоб функція визначала - пости якоїсь батьківської таксономії виводяться на сторінці. Вивести її у змінну та цю змінну присвоїти параметру функції child_of.

Знайшов у мережі зразковий код, але поки не розібрався як за допомогою нього впорається із завданням.

отримую дочірні таксономії від батьківської, у якої ID=7. Але виводяться вони всім сторінок відразу.

Давайте ви ще раз сформулюєте, що хочете зробити, але тількивикористовуючи правильні терміни. Тому що таксономії не мають спорідненості, а сторінки не мають прив'язки до таксономій. А там, того й дивися, потрібний код сам собою утворюється.

Добре. Спробую вкотре сформулювати.

1. Створив довільні типи записів і їм зареєстрував таксономії (назва зареєстрованих таксономій «our_personal»). 2. Далі через адмінку створив рубрики "керівництво", "директори", "менеджери". 3. Рубрикам «директора», «менеджери» вказав на те, щоб батьківською для них буде рубрика «керівництво». 4. Створив файл taxonomy-personal.php та у файлі налаштував виведення постів через new WP_Query. 5. Розмістив рубрику «керівництво» у меню сайту і відповідно на сторінці отримую всіх співробітників із рубрик «директора». 6. І, відповідно, усередині цього файлу потрібно вивести меню з рубриками «директора» та «менеджери». (те саме буде відноситься і для інших рубрик. батьківська рубрика в меню, а рубрики, що належать батьківській — на сторінці, куди виводяться пости батьківської рубрики).

Як я зрозумів, батьківські пости мають свій власний ідентифікатор. Якщо вказати його в параметрі child_of, то я отримаю всіх дітей зазначеної рубрики.

У результаті виходить все якимось чином визначати ідентифікатор батьківської рубрики, пости якої і виводяться на сторінці. Далі цей ідентифікатор в якості змінної вказати параметрі child_of .

Таким чином, виводячи на сторінці пости батьківської рубрики, ми також виводимо на цій сторінці список дочірніх рубрик.

Вже трохи краще 🙂

Ви вище навели код (теж не без термінологічної плутанини). У ньому є все, що потрібне.

в результаті отримаємо об'єкт term. Його ID = $term->term_id Якщо нам потрібен ID батька цього терму, то це$term->parent Список термів-дітей так:

Створив файл taxonomy-personal.php та у файлі налаштував виведення постів через new WP_Query.

Чому людина, а не our_personal? Навіщо new WP_Query?

Таким чином, запитуючи елементи термінів можна вказати параметру child_of змінну, що містить поточний ідентифікатор батьківської рубрики, і в результаті отримуємо список тих рубрик, які відносяться до певної таксономії (рубрики), посади якої виводяться на сторінці. $terms = get_terms($taxonomy, array( 'child_of' => $term_id ) );

  • Відповідь змінено 1 рік, 11 міс. тому користувачем LLIypuk.