Рубрика: Рубрики
Как удалить из вывода the_category указанные рубрики?
Практически все темы WordPress для вывода рубрик записи используют функцию the_category(). Что делать, если вы не хотите выводить весь список рубрик, присвоенных записи? Можно, конечно, заменить функцию the_category на какой-нибудь свой код, выводящий рубрики. Но лучше всего фильтровать вывод именно функции the_category, а не писать свой собственный "костыль". Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
Как получить ярлык (slug) текущей рубрики?
Если вам в теме или плагине требуется узнать ярлык текущей рубрики, то вы можете воспользоваться следующим кодом в нужном вам шаблоне темы:
<?php if ( is_single() ) { $cats = get_the_category(); $cat = $cats[0]; } else { $cat = get_category( get_query_var('cat') ); } $cat_slug = $cat->slug; // ярлык рубрики $cat_id = $cat->cat_ID; // ID рубрики $cat_name = $cat->name; // название рубрики ?> |
Этот код будет работать на страницах рубрик и на страницах одиночных записей. По умолчанию код возьмет ярлык первой рубрики, к которой принадлежит запись.
Как использовать html-теги в описаниях рубрик и меток?
WordPress по умолчанию удаляет всю html-разметку в описаниях рубрик (меток и прочих таксономий) при их сохранении. Если в вашей теме используются описания рубрик, то вывод этих описаний в обычных тегах параграфа может быть неприемлемым. Данное поведение WordPress можно исправить, для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
Как проверить существование родительской рубрики?
Иногда по каким-то причинам вебмастеру необходимо знать, является ли текущая рубрика родительской или дочерней. Например, при формировании заголовка архива рубрики. Для этого можно использовать следующий условный тег (добавьте код условного тега в файл functions.php вашей темы):
//условный тег проверки на дочерность start function is_subcategory ($catid) { $currentcat = get_category($catid); if ($currentcat->parent) { return true; } else { return false; } } //условный тег проверки на дочерность end |
Использовать этот условный тег очень просто, например, так:
Как вывести записи только родительской рубрики?
WordPress по умолчанию добавляет записи дочерних рубрик в вывод записей родительской рубрики. Таким образом, вывести записи только родительской рубрики без записей дочерних рубрик нельзя. Данную ситуацию можно исправить с помощью такого кода, добавленного в файл functions.php вашей темы:
//вывод записей только родительской рубрики start function wph_only_parent_category($query) { if (!is_admin() && $query->is_main_query() && $query->is_category()) $query->set('category__in', array(get_queried_object_id())); } add_action('pre_get_posts', 'wph_only_parent_category'); //вывод записей только родительской рубрики end |
Данный сниппет будет работать только с основным циклом вывода записей (свои циклы, заданные через query_posts будут игнорироваться). Если вас это не устраивает, то вы можете убрать проверку на основной цикл: