Как получить термин таксономии текущей страницы и наполнить запросы в шаблоне

19 июн. 2011 г., 18:15:30
Просмотры: 72.9K
Голосов: 20

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

По сути:

  • Страница 1 имеет термин таксономии - образовательная политика
  • page.php имеет четыре части:
    1. стандартный цикл, который выводит страницу, а затем имеет три последующих запроса
    2. цикл для событий, имеющих термин таксономии - образовательная политика
    3. цикл для отчетов, имеющих термин таксономии - образовательная политика
    4. цикл для людей, имеющих термин таксономии - образовательная политика

Я создал специфичные для страниц шаблоны, где я мог просто жестко прописать термин в дополнительных циклах, но мне нужно понять, как сделать это динамически (то, что изначально должно было быть четырьмя или пятью страницами, теперь стало сорока или пятьюдесятью).

Я нашел несколько похожих вопросов, но ни один из них я не смог действительно реализовать.

Получить таксономию текущей страницы, что было немного сложно понять с точки зрения того, что на самом деле спрашивалось.

Получить ID термина, принадлежащего пользовательской таксономии на странице шаблона single-post-type.php

Надеюсь, это имеет смысл, и заранее спасибо.

0
Все ответы на вопрос 3
0
33

Хм, если вы правильно зарегистрировали таксономию для типа записи "page" и затем назначили термин этой таксономии для страницы... Я полагаю, вы можете получить доступ к слагам таксономии и термина следующим образом:

get_query_var( 'taxonomy' )
get_query_var( 'term' )

Если вы выполните print_r($wp_query), то увидите все параметры, которые доступны при генерации текущей отображаемой страницы. С помощью кода выше вы получаете доступ к этим параметрам из $wp_query.

Затем, чтобы получить объект термина со всей информацией, вы можете использовать функцию get_term_by, например так:

$term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') );
echo $term->name;

Это выведет "читаемое" имя термина.

Я полагаю, если вы используете get_query_var('term') или $term->slug (после получения объекта термина), вы можете использовать этот слаг в других запросах.

Надеюсь, это поможет. Я никогда не использовал таксономии для страниц. Дайте знать, как у вас получится.

28 июн. 2011 г. 12:32:50
0

Просто скопируйте и вставьте приведенный ниже код

Этот код выведет название таксономии текущей страницы и описание (опционально)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
31 авг. 2017 г. 18:48:09
0
-2

Возможно, вам нужно включить поиск, чтобы включить пагинацию.

При объявлении пользовательской таксономии следует отключить исключение из поиска.

exclude_from_search => false

Это решило мою проблему.

28 дек. 2015 г. 21:09:32