Список всех категорий можно получить через get_terms.
Параметр exclude указывает те категории, которые нужно исключить.
ID текущей категории (которую и нужно исключить) можно получить через get_queried_object().
Будет как-то так:
$current = get_queried_object();
$args = array(
'taxonomy'=> 'имя_таксономии',
'exclude' => $current->term_id,
);
$cats = get_terms( $args );
В итоге в $cats будет требуемый список. Осталось его в цикле вывести. Упрощенно это будет так:
<ul>
<?php foreach ( $cats as $entry ) : ?>
<li><a href="<?php echo get_term_link( $entry ); ?>"><?php echo $entry->name; ?></a></li>
<?php endforeach; ?>
</ul>
Ну а вывод записей из категории (сами видеоролики) — это ж стандартный цикл Вордпресса.
Если ссылка на YouTube хранится в доп.полях записи, то просто подставляете ее каждый раз в <iframe src=»…»></iframe>.
P.S. У Вас с html-разметкой не очень. Использовать каждый раз section вместо div так себе идея. section — это может быть, например, весь блок с кнопками/ссылками «Инфографика», «Инфо», «Монтаж». Но внутри него лучше сделать список как у меня, или, в крайнем случае, каждая ссылка в div, а не section.
я бы поигрался скриптами на JS.
все может получиться намного проще.
Но в любом случае, дать сразу готовый пример — это требует некоторого времени и значит, другого раздела для обсуждения.
Большое спасибо за ответ. Свою верстку я обязательно улучшу и заменю section на div.
Я поставил ваш код на сайт и получил все категории
$current = get_queried_object();
$args = array(
'taxonomy'=> 'category',
'exclude' => $current->term_id,
);
$cats = get_terms( $args );
Но exclude не работает. В чем может быть причина?
'exclude' => array($current->term_id),
Я поставил вашу строку вместо прошлой, но он все равно не заработал.
@adger, только сейчас ради интереса проверил свой код в category.php на стандартной теме — всё ОК.
У меня создано 3 рубрики. При переходе в любую из них в массиве $cats оказываются оставшиеся две — кроме открытой, в общем.
Гадать почему у Вас не заработало можно долго. Разве что покажите полностью файл, куда вы этот код вставили. Куда-нибудь типа Яндекс-диска выгрузите, например.
functions.php не надо было трогать. Фрагмент, который Вы в него поместили, нужно тоже сделать в category.php. Хоть прямо перед моим foreach, хоть после get_header() — это уже без разницы.