@martuwka

Как удалить циклические ссылки рубрик в WordPress на PHP?

Мне нужно удалить циклические ссылки (ссылки, которые ведут сами на себя) рубрик на главной странице. Сайт находится на движке WordPress. Структура такова, что на главной странице возле каждого поста находится его рубрика (ссылка). Когда человек кликает по рубрике поста - выводятся все посты только этой рубрики. И возле каждого поста также есть эти ссылки рубрик. Мне нужно сделать их не ссылками, чтобы выводилось только их название.

Вывод рубрик осуществляется функцией <?php the_category(); ?>. В исходном HTML коде к ним не добавляется никакой класс.

Пробовал сделать так:
<?php $cat = get_the_category();?> 
<?php if (is_category($cat)) : ?>
<?php single_cat_title()?>
<?php else : ?>
<?php the_category(); ?>
<?php endif; ?>


Суть в том, что мы проверяем находимся ли мы в какой-то рубрике, если да, то идентификатору присваивается название этой рубрики. Затем если значение этого идентификатора = названию текущей рубрики, то мы выводим только название рубрики (без ссылки). Если же нет, то выводится рубрика-ссылка.

Но что-то не получается. Что посоветуете? Как сделать?
  • Вопрос задан
  • 514 просмотров
Решения вопроса 1
@Otrivin
junior full-stack сисадмин
Чуть не там копаешь. Нужно искать именно вывод ссылки (<а hrеf), и на него вешать условие проверки значения ссылки с $_SERVER["REQUEST_URI"] , например (зависит от того, абсолютные или относительные ссылки генерируются). Ищи вывод этих ссылок по каким-либо косвенным факторам (может, им класс особый где-то задаётся) поиском по файлам Notepad++'а. Потом определяй, если выводимый url НЕ совпадает с тем, по которому мы перешли на текущую страницу, то все идёт своим чередом, если совпало - выводи span вместо а hrеf.
С телефона, подробнее расписать не могу, сорян.

*********************

Надо выяснить, каким образом выводится ссылка на категорию.
Потом проверять как-то так:
$current_url = (is_ssl()?'https://':'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$item_url = esc_attr( $item->url ); //здесь нам надо переменной $item_url передать значение из переменной, которая участвует в выводе самой ссылки в шаблон
//потом проверка
if ( $item_url != $current_url ){ //если выводимая ссылка не равна текущей странице
	оператор вывода html кода;
} else { //иначе, если совпадает
	оператор вывода кода для циклической ссылки;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы