Ещё один простой блог в интернете, одного из жителей Сызрани, который считает себя дизайнером, WEB-мастером и фотографом-любителем

просто блог

QR CODE для записиQR CODE для записи “Укрощение WordPress под спецификации HTML5”

Укрощение WordPress под спецификации HTML5

WordPress изначально заточен под XHTML. Поэтому пришлось фиксить его под работу на HTML5 (как громко это сказано).
Многие метатеги неизвестны HTML5, поэтому их пришлось отключить.

Фиксим хедер

Из хедера (<head>) в файле header.php вашего шаблона удаляем все лишнее, оставляем лишь необходимое. У меня это выглядит примерно так:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Архив блога <?php } ?> <?php wp_title(); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>">
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>">
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>">
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>">
<?php wp_head(); ?>
</head>

Строка title у Вас в шаблоне может отличатся от моей.

Теперь добавляем в файл functions.php функции удаления лишних метатегов из хедера

remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'index_rel_link' );

Избавляемся от REL’ов

Вторая проблема, на которую ругается валидатор — это rel‘ы в ссылках рубрик — rel=»category tag»
Для удаления rel в ссылках рубрик делаем небольшой фикс

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

Его необходимо вставить в файл functions.php.

  1. Webliberty # link

    Кстати, вроде разработчики вордпресса обещали выпустить версию с использованием HTML 5, не знаю в последней 3.3 уже есть или нет. Сейчас я использую XHTML при верстке, но в будущем планирую переделать под новый стандарт. Наконец-то доктайп стал человеческим, а то трудно разобраться что к чему.

  2. BaNru # link

    Обновлял один проект уже. Да появились. Эта статья уже, можно сказать, неактуальна.

    Но таким образом можно избавиться и от других не нужных тегов. Просто надо знать как к ним обращаться :-)
    Например можно убрать тег wp_generator, который все равно еще пихается в хедер.

    Мое мнение, если есть желание отдать дань WP, то лучше поставить комментарий в конце шаблона, в футере, типа такого
    <!— Сайт работает на WordPress <?php bloginfo(‘version’); ?>
    Дизайн и верстка Я СОБСТВЕННОЙ ПЕРСОНОЙ —>

  3. Webliberty # link

    Все лишнее у меня убрано давно, с кодом пришлось изрядно повозиться))) А микроразметкой не приходилось заниматься? Совместно с HTML 5 мне кажется даст хорошие результаты в плане структурирования исходного кода…

  4. мотек # link

    «Из хедера удаляем все лишнее»
    открывающий тег сразу после доктайпа стоит оставить:)

  5. BaNru # link

    Ну там же показано, как у меня выглядит:
    <!DOCTYPE html><html><head>
    Далее пишем что-то свое — скрипты, стили и т.д.
    Далее, перед закрывающим тегов ставим служебную функцию
    <?php wp_head(); ?>
    и закрываем хедер.

    В данной статье описано, как удалять всё лишнее из служебной функции wp_head(), работаем с ней.

  6. Богдан # link

    BaNru, подскажи, пожалуйста, с функцией, чтоб точно так же убрать те rel’ы, которые «attachment»!

  7. BaNru # link

    Мне ни разу не попадалась данная роль, я даже не знаю как её воспроизвести.
    Могу только предложить попробовать добавить в functions.php

    add_filter ( 'the_attachment' , 'delete_rel' );

    Хотя предполагаю, что это не поможет.

  8. BaNru # link

    Ступил, совсем за год забыл даже про что статья.

    Rel выглядит так примерно?
    rel=»attachment wp-att-101″

    Вот так попробуй

    function delete_rel_attachment($content) {
        return preg_replace('#rel="attachment wp-att-[0-9]*"#', "", $content);
    }
    add_filter('the_content', 'delete_rel_attachment');

    Только вот the_content или $content возможно надо будет заменить, если attachment’ы выводятся не контентом.

  9. Богдан # link

    это вторая часть, а интересно, что в первую включить? В общем, потыкал разные варианты — никак не могу валидатор обойти. А обидно то, что это — единственная ошибка на странице…

  10. Богдан # link

    BaNru, ай да молодец, ай да голова! Вставил твой код «как есть» (с «the_content»), и — сработало! Теперь глаза радует зеленый цвет валидатора!

Оставить комментарий

В блоге включена ручная модерация комментариев. Нет смысла повторно отправлять комментарий.
Поля отмеченный звездочкой * обязательны к заполнению

Перед отправкой формы: