Генерация WordPressom невалидного кода функцией the_category

Доброго времени суток читатели Моих тараканов!

Валидный код генерируемый движком WordPress

А вот и первая ласточка.

В одном из последних постов я оговорился, что работаю над новым шаблоном для своего блога. Планирую написать код шаблона собственноручно, от первого до последнего тега. С HTML у меня проблем нет, а вот с PHP придется немного потягаться.

На написание кода тратится много времени, когда на сам блог времени не уделяется. Я решил исправить ситуацию и публиковать небольшие заметки о проблемах, которые будут возникать у меня в процессе верстке. К статье добавил специально созданный тег «новый шаблон», чтобы каждый желающий мог проследить за ходом возникновения проблем и способах их решения.

А вот и первая проблема. После анонса статьи я вывел список категорий связанных с ней, такой функцией:

<?php the_category(', '); ?>

WordPress генерировал такой HTML код:

<a href="http://moi-tarakany.ru/category/html/" title="Просмотреть все записи в рубрике &laquo;html&raquo;" rel="category tag">html</a>

На первый взгляд всё нормально, но если проверить код на валидность, то мы увидим следующее сообщение:

Bad value category tag for attribute rel on element a: The string category is not a registered keyword or absolute URL. Whitespace in path component. Use %20 in place of spaces.

Валидатор ругался на эту часть кода rel="category tag", сгенерированную WordPress.

Я немножко погуглил и нашел такое решение: чтобы удалить невалидный код нужно просто добавить в файл functions.php следующую функцию:

function remove_category_rel($output)
{
    $output = str_replace(' rel="category tag"', '', $output);
    return $output;
}
add_filter('the_category', 'remove_category_rel');

Чтобы узнавать о новых статьях в блоге, предлагаю подписаться на обновления по RSS или по почте! Также Вы можете следить за моим щебетом в Твиттере.

С уважением, Мышак Пётр.

Comments are closed.