Микроразметка для WordPress

В первую очередь микроразметка предназначена для выдачи в результатах поиска описание содержания веб-страницы. Те самые несколько строк: заголовок, описание, дата, быстрые ссылки если есть, карта, должны максимально заинтересовать пользователя зайти на Ваш сайт. Другими словами микроразметка по полочкам разжалует содержание веб-страницы, тем самым определяя семантику.

Микроразметка schema.org

Для микроразметки schema.org все заголовки в шаблоне с тегами h1-h... должны содержать атрибут schema.org itemprop="name" . Все ссылки как в шаблоне так и в содержании сайта должны иметь атрибут schema.org itemprop="url" , кроме заголовка в шапке сайта, для названия сайта применяется атрибут itemprop="headline" для описания сайта, естественно itemprop="description" .

Дата написания содержания веб-страницы для результатов поиска не мало важна, многие пользователи ищут свежие новости. Быстрые ссылки к важным или ключевым страницам определяет робот, ему проще будет это сделать если сайт имеет микроразметку schema.org .

На многих сайтах микроразметка с ошибками. Дело в том, что есть много видов веб сайтов: корпоративный, интернет магазин, портфолио, блог ты так далее. Для каждого вида сайта должна быть своя микроразметка. В случае если страница отличается от основного содержания сайта, например на странице видео файлы или аудио треки, для этой страницы необходимо заполнить соответствующие атрибуты микроразметки. Смотрите страницу с примерами Введение в schema.org .

Микроразметка для WordPress

Как Я уже упоминал для каждого вида веб-сайта своя микроразметка. О микроразметке для веб-страниц можно написать книги в нескольких томах, поэтому перейдём сразу к делу. Проверить правильность разметки можно с помощью валидатора . Заказать микрозаметку для своего сайта Вы сможете на странице « Контакты ».

Список атрибутов schema.org для блога WordPress по порядку, кроме контактов, рейтинга и социальных сетей.

нажмите здесь, чтобы посмотреть | скрыть их

Микроразметка для комментариев wordpress

Для примера микроразметка в комментариях wordpress , рассмотрим тему twentytwelve. Что бы микрораметка для комментариев wordpress была без ошибок, удаляем из кода класс vcard . (vcard и hCard это одно и тоже). Потому что vcard должен иметь классы fn n , если их добавить в валидаторе Яндекс будет предупреждение: ПРЕДУПРЕЖДЕНИЕ:кажется, ваша разметка hCard описывает не организацию (поля fn и org не совпадают) .

Предупреждение о том что поля fn и org не совпадают не совсем логично, класс org предназначен для описания организации. Если добавить классы fn n и org для автора комментария то организация будет как имя автора комментария. Кроме этого потребуется дополнительная микроразметка описывающая организацию т.е. это будет имя автора. Что бы избежать этого, открываем активную тему сайта и вносим изменения в файле функции.

Комментарии с микроразметкой для темы twentytwelve



<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>" itemscope itemtype="http://schema.org/UserComments">
		<article id="comment-<?php comment_ID(); ?>" class="comment">
			<header class="comment-meta comment-author" itemprop="creator">
				<?php
					echo get_avatar( $comment, 44 );
					printf( '<cite itemprop="name"><b>%1$s %2$s</b></cite>',
						get_comment_author_link(),
						// If current post author is also comment author, make it known visually.
						( $comment->user_id === $post->post_author ) ? '<span> ' . __( 'Post author', 'twentytwelve' ) . '</span>' : ''
					);
					printf( '<a href=
http://pixelcom.crimea.ua/"%1$s"><time itemprop="commentTime" pubdate datetime="%2$s">%3$s</time></a> // для яндекс
                    <time style="display:none" itemprop="startDate" pubdate datetime="%2$s">%3$s</time> // для google',
						esc_url( get_comment_link( $comment->comment_ID ) ),
						get_comment_time( 'c' ),
						/* translators: 1: date, 2: time */
						sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() )
					);
				?>
			</header><!-- .comment-meta -->

			<?php if ( '0' == $comment->comment_approved ) : ?>
				<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwelve' ); ?></p>
			<?php endif; ?>

			<section class="comment-content comment" itemprop="commentText">
				<?php comment_text(); ?>
				<?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?>
			</section><!-- .comment-content -->


Обратите внимание на строку time их две. Не нужно забывать о валидаторе микроразметки от google, который также не логичен. Без второй строки time микроразметка в валидаторе от google покажет ошибку Ошибка. Missing required field ″dtstart″ . Что означает не хватает даты начала комментария, зачем это нужно не понятно. Если есть начало должен быть и конец это закономерность, но в этом случае хватает только начала. Ну да ладно, добавляем еще одну строку с атрибутом itemprop="startDate" и стилем "display:none" чтобы не портить макет. Если кто не знает, атрибут itemprop="startDate" это альтернатива "dtstart" .

После изменения кода мы имеем микроразметку для комментариев в wordpress без ошибок и предупреждений. Если Вы, всё таки решили оставить класс vcard и fn . А еще для автора комментария добавить классы n org и чтобы парсер микроразметки обработал вашу страницу без предупреждений и ошибок, потребуется выполнить ряд действий, добавить поля в форму комментариев организация, город, телефон как это сделать читайте дальше.

Добавить поля в форму комментариев wordpress

Значение дополнительных полей и формы комментариев wordpres будут записываться в базу данных. Для отображения значений дополнительных полей вставляем код ниже в форму комментариев с микроразметкой.



/** выводим значение полей */
<span <?php $syti = get_comment_meta ( $comment->comment_ID, 'syti', true );
    echo '<i>Город:</i> <span class="adr">'.$syti.'</span>';
?>
<?php $org = get_comment_meta ( $comment->comment_ID, 'org', true );
    echo '<i>Организация:</i> <span class="org">'.$org.'</span>';
?>
<?php $tel = get_comment_meta ( $comment->comment_ID, 'tel', true );
    echo '<i>Телефон:</i> <span class="tel">'.$tel.'</span>';
?>


В функции активной темы добавляем поля, по желанию можно сделать их массивом.



/** добавить поле для формы коммент.. wp - город */

function add_comment_syti($fields) {

    $fields['syti'] = '<p class="comment-form-syti"><label for="syti">' . __( 'Город' ) . '</label>' .
        '<input id="syti" name="syti" type="text" size="30" /></p>';
    return $fields;

}
add_filter('comment_form_default_fields','add_comment_syti');

function add_comment_meta_values_syti($comment_id) {

    if(isset($_POST['syti'])) {
        $syti = wp_filter_nohtml_kses($_POST['syti']);
        add_comment_meta($comment_id, 'syti', $syti, false);
    }

}
add_action ('comment_post', 'add_comment_meta_values_syti', 1);

/** добавить поле для коммент... wp - организация */

function add_comment_org($fields) { 

    $fields['org'] = '<p class="comment-form-org"><label for="org">' . __( 'Организация' ) . '</label>' .
        '<input id="org" name="org" type="text" size="30" /></p>';
    return $fields;

}
add_filter('comment_form_default_fields','add_comment_org');

function add_comment_meta_values_org($comment_id) {

    if(isset($_POST['org'])) {
        $org = wp_filter_nohtml_kses($_POST['org']);
        add_comment_meta($comment_id, 'org', $org, false);
    }

}
add_action ('comment_post', 'add_comment_meta_values_org', 2);

/** добавить поле для коммент... wp - телефон */

function add_comment_tel($fields) { 

    $fields['tel'] = '<p class="comment-form-tel"><label for="tel">' . __( 'Телефон' ) . '</label>' .
        '<input id="tel" name="tel" type="text" size="30" /></p>';
    return $fields;

}
add_filter('comment_form_default_fields','add_comment_tel');

function add_comment_meta_values_tel($comment_id) {

    if(isset($_POST['tel'])) {
        $tel = wp_filter_nohtml_kses($_POST['tel']);
        add_comment_meta($comment_id, 'tel', $tel, false);
    }

}
add_action ('comment_post', 'add_comment_meta_values_tel', 3);


Я сомневаюсь что эти поля пользователи будут заполнять даже если их сделать обязательными для заполнения есть риск снижение количества комментариев к записи. Используйте на своё усмотрение.

Заключение

В этой статье Я предоставил полный список атрибутов schema.org для блога WordPress. Пример микроразметки для комментариев WordPress темы twentytwelve, с возможностью добавить дополнительные поля к форме комментариев.

2 комментария на тему “Микроразметка для WordPress”

  1. комментарии

    Лучше будет если вместо itemscope itemtype="http://schema.org/Article" вставить itemscope itemtype="http://schema.org/BlogPosting" .

    Вторая строка с датой в комментариях уже не нужна, google исправил валидатор микроразметки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML -теги и атрибуты: <a href= http://pixelcom.crimea.ua/"" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>