meta description без плагина — post, page, Xcategory
Проблема: код который использую не выводит description для категорий. Нужно дополнить код чтобы у страниц категорий в description вставлялось Описание категории из админки. Возможно уже кто-то решил проблему и иным способом, возможно есть более элегантное решение, подскажите плз.
Использую код в header.php (в постах и страницах добавляет в description краткий анонс статьи. Если excerpt не задан, берет начало текста. Функция get_the_excerpt() — получает анонс поста и обрезает лишние html теги и изображения):
<?php if (is_single() || is_page() ) : if (have_posts() ) : while (have_posts() ) : the_post(); ?> <meta name="description" content="<?php echo cutString(get_the_excerpt(), 190); ?>" /> <?php endwhile; endif; elseif (is_home() ): ?> <meta name="description" content="<?php bloginfo('description'); ?>" /> <?php endif; ?>
И функция в funtions.php которая обрезает строку по словам в пределах заданного количества символов (190) и в конце добавляет ‘…’:
function cutString($string, $maxlen) { $len = (mb_strlen($string) > $maxlen)? mb_strripos(mb_substr($string, 0, $maxlen), ' ') : $maxlen; $cutStr = mb_substr($string, 0, $len); return (mb_strlen($string) > $maxlen)? $cutStr.' ...' : $cutStr; }
Заранее спасибо!
Перед тем, как вызвать функцию обрезки строки, проверьте, с какой страницы вызывается функция. Если is_single(), то передаёте в свою функцию результат выполнения get_the_excerpt(), а если is_category(), то результат term_description().
Непонятно, почему вывод описания у Вас находится в цикле. Оно ведь должно быть одно на странице.
Грубо код вывода описания должен выглядеть так: