Стандартный шаблон страницы термина таксономии taxonomy-term.tpl.php не позволяет управлять выводом публикаций, он лишь служит как обертка для полей термина.
Единственная настройка CMS, которая влияет на вывод списка — это переменная default_nodes_main, которая задаёт число отображаемых публикаций, связанных с термином.
Тем не менее есть как минимум два варианта как бороться со встроенным в страницу термина списком нод.
Способ 1: Меняем шаблон node.tpl.php
Ноды выводятся в режиме тизеров, и это позволяет исправить внешний вид публикации этого режима, так чтобы вывод был пустой.
Вот скелет для node.tpl.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php /** * @file * Default theme implementation to display a node. ?> <article сlass="<?php print $classes; ?> clearfix"<?php print $attributes; ?>> <?php if ($view_mode == 'full'): ?> <!-- режим полного вывода контента ноды --> ... <?php elseif ($view_mode == 'teaser'): ?> <!-- а для тизера не выводим ничего --> <?php } ?> </article> |
В общем-то не самый идеальный, но простой способ.
Способ 2: Перехват элемента меню
Обработчик страницы термина таксономии в одноименном модуле подключается через hook_menu. Идея состоит в том, чтобы переопределить обработчик.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/** * implementation hook_menu_alter(); * @param unknown_type $items */ function MYMODULE_menu_alter(&$items) { // переопределяем обработчик страниц терминов if (isset($items['taxonomy/term/%taxonomy_term'])) { $items['taxonomy/term/%taxonomy_term']['page callback'] = '_MYMODULE_term_page'; } } function _MYMODULE_term_page($term) { // вызываем функцию, которая была назначена ранее $build = taxonomy_term_page($term); // удаляем список нод из билда unset($build['nodes']); return $build; } |
Этот подход тоже не идеален, т.к. и другие модули могут подобным образом подменять обработчик.