Над 2 years ago I published an article on how to fix problems with WordPress themes which didn’t pass the Google Rich Snippets Testing Tool. С тех пор много изменилось - WordPress и большинство темы имеют лучшую поддержку, HTML5 и CSS3 приехали, и Google, Yahoo and Bing got together and decided to focus on Microdata, через schema.org. В то время микроформаты казалось самый простой способ разметки страниц, и инструмент тестирования был самый всестороннюю поддержку для них. Переход на микроданных и изменения в WordPress требуется новая статья: это он!
Вместо того, много отдельных статей для различных тем я решил попробовать предоставить всю информацию, в 1 направлять. This makes it easier to keep up to date, и означает, что есть только 1 центральная точка для всех запросов и обсуждения. It also makes more sense as several of the steps are the same regardless of what theme you are using. I’m not going to cover all the optional extras in this article, просто основы, чтобы ваш сайт, чтобы проверить с помощью инструмента. После того, как вам удалось, что вы должны найти добавления дополнительной разметки относительно легко. Общайтесь с ...
Добавить ссылку из вашего профиля Google на свой сайт
Вы увидите на мой Google про-файл что у меня есть ссылка госу-дарственных к https://diymediahome.org - Вам нужно будет то же самое для своего сайта. В идеале вам нужно все ваши авторов иметь профиль Google, который связан с вашего сайта так же, как это.
- Войти в свой Google про-файл
- Прокрутите вниз, пока не увидите связи раздел где-то к нижней правой части страницы
- Нажмите на кнопку редактировать ссылка
- Под contributor to сек-ции нажмите Добавить кли-том ссылку
- Убедитесь, что в поле справа от текста contributor to установлен в общественный
- Введите название Вашего сайта (например. DIY Медиа Главная) и адрес (например. https://diymediahome.org)
- Нажмите кнопку Сохранить
Добавить ссылку с вашего сайта в свой профиль Google
Теперь нам нужно добавить ссылку на странице вашего автора в свой профиль Google. Есть 2 чередующееся-на-ив способов сделать это, Я очень рекомендуем с помощью Yoast ЭТО плагин.
- Установите Yoast ЭТО плю-джин ИЛИ добавьте следующий код в файл functions.php вашей темы123456789function update_contactmethods( $contactmethods ) {// Add Google Profiles$contactmethods[‘googleplus’] = ‘Google+’;// Add Twitter$contactmethods[‘twitter’] = __( ‘Twitter username (without @)’, ‘wordpress-seo’ );return $contactmethods;}add_filter( ‘user_contactmethods’, ‘update_contactmethods’, 10, 1);
- Перейдите на автора профиля в WordPress интерфейс администратора (hover over Пользователи в меню слева, и нажмите Ваш Pro-файл)
- В Google+ Поле добавить ссылку на ваш Google про-файле (например. https://plus.google.com/104657888470728381512 /)
- Убедитесь в том, либо вы, or your other site authors do the same thing, и каждое звено в ваших собственных профилей Google
- Сейчас, если вы используете Yoast PLU-джин, перейти к ЭТО меню и выберите Названия и METAS, слизать на Дом меню в верхней части страницы, а в Автору высокого света-Ing пулдаун окно выбора пользователя, которого необходимо использовать в качестве автора главной страницы
- Если вы настойчиво о не использовании плагин Yoast вам нужно будет вручную добавить следующий код в header.php (предполагая, у вас есть). Don’t forget to change my google profile url to yours. This code will use the post author’s google profile url if there is a valid one, и будет использовать по умолчанию (ваш) если нет.1<link rel=“author” href=”<?php $gplus = ‘https://plus.google.com/115369062315673853712/posts’; if ( is_singular() ) {global $post; $gplus = get_the_author_meta( ‘googleplus’, $post->post_author );} echo $gplus; ?>”/>
Исправить ошибки в "обновленном" отсутствует поле
Большинство тем WordPress включать информацию о том, когда сообщение было опубликовано в сообщение информационного пространства, но очень немногие также включать, когда она была обновлена. Это жаль, because updated is required whereas published actually isn’t! Добавление легко, хотя, и снова, имеются 2 способы, the proper way and the quick hack way. I recommend the proper way of course, но при необходимости можно прибегнуть к быстрому рубить. Мы также собираемся перейти от микроформатах к микроданным в то же время.
Правильный способ
We’re going to add some additional information to post headers, как для поисковых систем и для наших отношению свои автомобили ПРС. Нам нужно будет сделать это для сообщений, страницы, архивы и домашнюю страницу.
- Нам нужно найти файл, содержащий код, который генерирует опубликованную ссылку. Это почти наверняка использовать WordPress функцию get_the_date(). Вы можете искать через ваши файлов темы, or refer to theme specific details below where I have provided details for lots of themes
- Мы собираемся, чтобы проверить, опубликованные и обновленные даты одинаковы. Если они у нас будут просто добавить дополнительные dateUp-от itemprop но если они отличаются, мы будет выводить дополнительный текст посетителю
- Мы собираемся добавить следу-инженер (and modify it as it explains)1234567891011121314151617<?php if(get_the_date()==get_the_modified_date()): ?>//we’re going to use the original code just with the updated class added//put your theme’s original code here//remove any class=””//add itemprop=“datePublished dateCreated dateModified” to the HTML tag surrounding the get_the_date() function<?php else: ?>//we’re going to use slightly code just with the updated date added//copy your theme’s original code to here and then modify it as below//remove any class=””//add itemprop=“datePublished dateCreated” to the HTML tag surrounding the get_the_date() function//add in a new html tag into the line where you want it to appear as below//Updated <?php echo get_the_modified_date() ?><?php endif; ?>
- You’ll either have to figure out the original theme’s code and edit it, or refer to the details for specific themes below.
- Возможно, вам придется повторить этот редактировать для нескольких файлов
Быстрый хак
Мы собираемся обманывать и поставить дату публикации как обновленной даты, даже если сообщение действительно было обновлено в последнее время. Если пост был обновлен, то мы на самом деле будем поставлять неправильную информацию, но он все равно будет вал-ID-ели. Это действительно лучше сделать это правильно, если это возможно, но если вы настойчиво делать это таким образом, читайте дальше. Как и выше, мы должны сделать это для сообщений, страницы, архивы и домашнюю страницу.
- Как и выше, мы должны найти файл, содержащий код, который генерирует опубликованную ссылку. Это почти наверняка использовать WordPress функцию get_the_date(). Вы можете искать через ваши файлов темы, или обратитесь к таблице ниже, где я представил подробную информацию для многих темы
- Найти HTML Эле-мент, что сюр-округляет дату (часто она будет иметь
class="published"
). - Редактировать элемент, удаляя класс и добавить следующее вместо
itemprop="datePublished dateCreated dateUpdated"
- Как и выше, Вы, возможно, потребуется повторить этот редактировать в нескольких файлах
Замена встроенных микроформатами (потому что смешивание богатые форматы фрагмент кода ломает вещи)
По умолчанию WordPress по-прежнему использует микроформата разметку для комментариев, которые, к сожалению, кажется, разорвать микроданных разметку таких вещей, как рецепты. Лучший способ исправить это, чтобы удалить микроформата разметку и заменить его микроданных разметки. К сожалению, в WordPress ключевые функции, которые производят эту разметку не имеют удобно расположен фильтр или крючок таким образом, это требует немного мастерить о.
Замена визитку в разделе комментариев
- То, что мы собираемся сделать, это использовать комментарий обратного вызова для изменения устройства вывода комментариев. Many themes already use a callback which we can modify, и для тех, которые этого не делают мы добавим один на основе WordPress умолчанию
- Проверить, если вы тема уже есть комментарий обратный вызов - поиск файлы темы для функции
wp_list_comments
. Если она включает в себя кодcallback=
или же'callback' =>
то она использует функцию обратного вызова, который вы должны быть в состоянии найти (проблема-умело в functions.php) , глядя на имя функции обратного вызова, который является частью после знака = или стрелку, например.wp_list_comments( array( 'callback' => 'twentyten_comment' ) );
или жеwp_list_comments('type=comment&callback=bones_comments');
. If it doesn’t then we will need to add one by addingcallback=diymh_comment
или жеarray( 'callback' => 'diymh_comment' )
к линии. - Если вам нужно добавить комментарий обратного вызова, то вам нужно будет добавить следующий код в functions.php123456789101112131415161718192021222324function diymh_comment($comment, $args, $depth) {$GLOBALS[‘comment’] = $comment; ?><li <?php comment_class(); ?> id=“li-comment-<?php comment_ID() ?>”><div id=“comment-<?php comment_ID(); ?>”><div class=“comment-author novcard”><?php echo get_avatar($comment,$size=‘48’,$default=’<path_to_url>’ ); ?><?php printf(__(‘<cite class=“fn”>%s</cite> <span class=“says”>says:</span>’), get_comment_author_link()) ?></div><?php if ($comment->comment_approved == ‘0’) : ?><em><?php _e(‘Your comment is awaiting moderation.’) ?></em><br /><?php endif; ?><div class=“comment-meta commentmetadata”><a href=”<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>”><?php printf(__(‘%1$s at %2$s’), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__(‘(Edit)’),’ ‘,”) ?></div><?php comment_text() ?><div class=“reply”><?php comment_reply_link(array_merge( $args, array(‘depth’ => $depth, ‘max_depth’ => $args[‘max_depth’]))) ?></div></div><?php}
- Вы заметите, что этот код имеет
class="novcard"
instead of the originalclass="vcard".
- Если ваша тема действительно иметь свой собственный обратный вызов вам нужно найти функцию обратного вызова и заменить все экземпляры
class="vcard"
сclass="novcard"
Замена hfeed в заголовке
- Следующий, мы должны также удалить все экземпляры
class="hfeed"
, которые УрГУ-союзником найти в header.php. Замените все вхождений изhfeed
сnohfeed
Замена hentry и название богатые фрагменты
- Мы можем заменить эти элементы с несколькими аккуратными функций добавляется в functions.php12345678910function diymh_replace_hentry($classes){if(($key = array_search(‘hentry’, $classes)) !== false) $classes[$key]=‘nohentry’;return $classes;}add_filter(‘post_class’,‘diymh_replace_hentry’);function diymh_microdata_title($title) {return ‘<span itemprop=“name”>’.$title.’</span>’;}add_filter(‘the_title’, ‘diymh_microdata_title’, 10, 2);
Добавление тип информации (например. Статья, Рецепт, и т.д.) в заголовке статьи
- Первый, decide what type of work you are publishing — most likely an article. Have a look at the list at schema.org
- Найти HTML тег, который содеражат те функция
post_class()
- Добавьте код
itemscope itemtype="https://schema.org/Article"
(заменить статью, если вы выбрали другой тип работы)
Окончательно, чтобы избежать нарушения каких-либо стилей
- Вам нужно будет редактировать style.css вашей темы и сделать поиск / замену операцию, чтобы заменить все экземпляры
.vcard
с.novcard
и заменить все экземпляры.hfeed
с.nohfeed
так, чтобы наши изменения не испортить любой CSS стиль-Ing из наших комментариях
Исправление любых других ошибок
Any other changes necessary will be detailed on a per theme basis below. Если у вас есть тема, которая вам не удается исправить просьба оставить комментарий. Если его свободную тему, пожалуйста, дайте мне знать имя темы, and if it is a premium theme please let me know so I can provide you with an e‑mail address to send a zipped copy to.
Тема конкретные детали
Before just carrying out these edits don’t forget to carry out the steps to link your google profile and your site to each other, и установить Yoast ЭТО, или добавить код предоставляет выше.
Twenty Ten 1.5
В functions.php заменить это
474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 | function twentyten_posted_on() { printf( __( ‘<span class=”%1$s”>Posted on</span> %2$s <span class=“meta-sep”>by</span> %3$s’, ‘twentyten’ ), ‘meta-prep meta-prep-author’, sprintf( ‘<a href=”%1$s” title=”%2$s” rel=“bookmark”><span class=“entry-date”>%3$s</span></a>’, get_permalink(), esc_attr( get_the_time() ), get_the_date() ), sprintf( ‘<span class=“author vcard”><a class=“url fn n” href=”%1$s” title=”%2$s”>%3$s</a></span>’, get_author_posts_url( get_the_author_meta( ‘ID’ ) ), esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentyten’ ), get_the_author() ) ), get_the_author() ) ); } |
При этом
474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 | function twentyten_posted_on() { if(get_the_date()==get_the_modified_date()){ printf( __( ‘<span class=”%1$s”>Posted on</span> %2$s <span class=“meta-sep”>by</span> %3$s’, ‘twentyten’ ), ‘meta-prep meta-prep-author’, sprintf( ‘<a href=”%1$s” title=”%2$s” rel=“bookmark”><span itemprop=“datePublished dateCreated dateModified”>%3$s</span></a>’, get_permalink(), esc_attr( get_the_time() ), get_the_date() ), sprintf( ‘<span class=“author vcard”><a itemprop=“author” href=”%1$s” title=”%2$s”>%3$s</a></span>’, get_author_posts_url( get_the_author_meta( ‘ID’ ) ), esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentyten’ ), get_the_author() ) ), get_the_author() ) ); } else{ printf( __( ‘<span class=”%1$s”>Posted on</span> %2$s <span class=“meta-sep”>by</span> %3$s. Updated <span itemprop=“dateModified”>%4$s</span>.’, ‘twentyten’ ), ‘meta-prep meta-prep-author’, sprintf( ‘<a href=”%1$s” title=”%2$s” rel=“bookmark”><span itemprop=“datePublished dateCreated”>%3$s</span></a>’, get_permalink(), esc_attr( get_the_time() ), get_the_date() ), sprintf( ‘<span class=“author vcard”><a itemprop=“author” href=”%1$s” title=”%2$s”>%3$s</a></span>’, get_author_posts_url( get_the_author_meta( ‘ID’ ) ), esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentyten’ ), get_the_author() ) ), get_the_author() ), get_the_modified_date() ); } } |
В functions.php заменить это
336 | <div class=“comment-author vcard”> |
При этом
336 | <div class=“comment-author novcard”> |
В header.php заменить это
56 | <div id=“wrapper” class=“hfeed”> |
При этом
56 | <div id=“wrapper” class=“nohfeed”> |
В loop.php (3 случаи), петля-single.php, петля-page.php и петля-attachment.php заменить это
1 | <div id=“post-<?php the_ID(); ?>” <?php post_class(); ?> |
При этом
1 | <div id=“post-<?php the_ID(); ?>” <?php post_class(); ?> itemscope itemtype=“http://schema.org/Article”> |
Двадцать одиннадцать 1.5
ком-ния очень скоро ...
Annotum База 1.1.1
В 7 файлы (функции особенности-articles.php, Отрывок типа article.php, Отрывок выдержка-default.php, Содержание типа article.php, Содержание page.php, Содержание контент-default.php, Содержание статья-pdf.php) заменять
1 | <article <?php post_class(‘article-full’); ?> |
с
1 | <article <?php post_class(‘article-full’); ?> itemscope itemtype=“http://schema.org/Article”> |
Пожалуйста, отправьте нам свои мысли, комментируя ниже! Если вы хотите подписаться, воспользуйтесь ссылкой для подписки в меню вверху справа.. Вы также можете поделиться этим с друзьями, используя социальные ссылки ниже. Ваше здоровье.
Thanks — working on it — eisenberg.co.za
большой, grazie mille!