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


16

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

В принципе:

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

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

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

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

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

Я надеюсь, что это имеет смысл и большое спасибо.

Ответы:


25

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

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(после получения термина object) вы можете использовать этот слаг во всех других запросах.

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


2

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

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

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>

-2

Может быть, вам нужно включить поиск, чтобы включить нумерацию страниц

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

exclude_from_search => false

Это исправило мою проблему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.