Обрезание длины заголовка в посте в зависимости от рубрики.

Добрый день всем!

Не могу решить возникшую проблему. Заказчик хочет, чтобы заголовок статей, которые находятся в рубрике Новости обрезался до 36 символов. Причем обрезание должно происходить где бы заголовок поста не выводился, т.е. в любом месте сайта. Если решение такой задачи?

function crop_title($title){
return substr($title, 0, 36);
}
add_filter('the_title', 'crop_title');

Спасибо за ответ!
Но Ваш вариант будет обрезать все посты, я такое уже делал, а мне надо обрезать если пост принадлежит определенной рубрике. Просто при вызове add_filter(‘the_title’, ‘crop_title’); не всегда оказывается можно вычислить категорию поста.

    global $post;

    $id = (int) $post->ID;

    $categories = get_object_term_cache($id, 'category');
    if ( false === $categories )
        $categories = wp_get_object_terms($id, 'category');

И будет вам массив всех категорий поста

Надо попробовать Ваш код, а если вывод идет в виджете? такой подход сработает?

Если доступен id поста то можно применять в любом месте

fear86, а чего не используете get_categories()?

Я взял кусок кода из ядра… 🙂

И если я не ошибаюсь get_categories неможет вернуть категории конкретного поста, только дочернии от другой категории

Блин, бес попутал. 🙂 Конечно же get_the_category().

Собственно из нее код я и взял, пожалуй вы правы использование get_the_category будет правильней.

Anonymous
Отправить
Ответ на: