Над 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 вашей темы
Функция update_contactmethods( $contactmethods ) { // Добавить анкеты Google $ contactmethods['GooglePlus'] = 'Google "; // Add Twitter $contactmethods["Twitter"] = __( "Twitter имя пользователя (без @)', 'Wordpress-поисковая оптимизация " ); вернуться $ 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, и будет использовать по умолчанию (ваш) если нет.
<ссылка отн ="автор" HREF ="<?PHP $ Gplus = 'HTTPS://plus.google.com/115369062315673853712/posts '; если ( is_singular() ) {Глобальная $ сообщение; $Gplus = get_the_author_meta( 'GooglePlus', $после->post_author );} Эхо $ 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)
<?PHP, если(get_the_date()== Get_the_modified_date()): ?> //мы собираемся использовать исходный код просто с обновленный класс добавил / / Поместить оригинальный код вашей темы здесь / / Удалить любой класс ="" //добавить itemprop ="datePublished DateCreated DateModified" к HTML tag surrounding the get_the_date() функция <?PHP еще: ?> //мы собираемся использовать слегка код просто с обновленный дате добавления / / Скопировать оригинальный код вашей темы, чтобы здесь, а затем изменять его, как показано ниже / / Удалить любой класс ="" //добавить itemprop ="datePublished DateCreated" к HTML tag surrounding the get_the_date() функция / / Добавить в новом HTML тега в строке, где он должен появиться, как показано ниже / / Обновлен <?get_the_modified_date PHP эхо() ?> <?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.php
Функция diymh_comment($комментарий, $аргументы, $глубина) { $GLOBALS['Комментарий'] = $ Комментарий; ?> <что <?PHP comment_class(); ?> ID ="литий-хау<?PHP COMMENT_ID() ?>"> <дел ID ="комментировать-<?PHP COMMENT_ID(); ?>"> <Класс дел ="комментировать-автор novcard"> <?get_avatar PHP эхо($комментарий,$размер = '48 ',$по умолчанию = '<path_to_url>' ); ?> <?PHP Е(__('<Приведу класс ="Fn">%с</цитировать> <Размах класс ="говорит">говорит:</пролет>'), get_comment_author_link()) ?> </дел> <?PHP, если ($комментировать->comment_approved == '0 ') : ?> <в><?PHP _e('Ваш комментарий ожидает модерации.') ?></в> <бр /> <?PHP ENDIF; ?> <Класс дел ="как мета commentmetadata"><A HREF ="<?HTMLSpecialChars PHP эхо( get_comment_link( $комментировать->COMMENT_ID ) ) ?>"><?PHP Е(__("% 1 $ S в% 2 $ S '), get_comment_date(), get_comment_time()) ?></а><?PHP edit_comment_link(__('(Редактировать)'),'','') ?></дел> <?PHP текст комментария() ?> <Класс дел ="ответ"> <?PHP comment_reply_link(array_merge( $аргументы, массив('Глубина' => $глубина, 'Max_depth' => $аргументы['Max_depth']))) ?> </дел> </дел> <?PHP }
- Вы заметите, что этот код имеет
class="novcard"
instead of the originalclass="vcard".
- Если ваша тема действительно иметь свой собственный обратный вызов вам нужно найти функцию обратного вызова и заменить все экземпляры
class="vcard"
сclass="novcard"
Замена hfeed в заголовке
- Следующий, мы должны также удалить все экземпляры
class="hfeed"
, которые УрГУ-союзником найти в header.php. Замените все вхождений изhfeed
сnohfeed
Замена hentry и название богатые фрагменты
- Мы можем заменить эти элементы с несколькими аккуратными функций добавляется в functions.php
Функция diymh_replace_hentry($классы){ если(($ключ = array_search('Hentry', $классы)) !== Ложь) $классы[$ключ]= 'Nohentry'; вернуться $ классы; } add_filter('Post_class','Diymh_replace_hentry'); Функция diymh_microdata_title($заглавие) { Возвращение "<Размах itemprop ="название">'. $ Название.'</пролет>'; } 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 заменить это
Функция twentyten_posted_on() { Е( __( '<Размах класс ="%1$с">Опубликовано</пролет> %2$с <Размах класс ="Мета-сентябре">к</пролет> %3$с ', 'TwentyTen' ), «Мета-преп мета-подготовительной автора, Sprintf( '<A HREF ="%1$с" название ="%2$с" отн ="закладка"><Размах класс ="начального Дата">%3$с</пролет></а>', тегу get_permalink(), esc_attr( get_the_time() ), get_the_date() ), Sprintf( '<Размах класс ="Автор визитную карточку"><класс ="URL Fn н" HREF ="%1$с" название ="%2$с">%3$с</а></пролет>', get_author_posts_url( get_the_author_meta( 'ID' ) ), esc_attr( Sprintf( __( "Просмотр всех публикаций% с ', 'TwentyTen' ), get_the_author() ) ), get_the_author() ) ); }
При этом
Функция twentyten_posted_on() { если(get_the_date()== Get_the_modified_date()){ Е( __( '<Размах класс ="%1$с">Опубликовано</пролет> %2$с <Размах класс ="Мета-сентябре">к</пролет> %3$с ', 'TwentyTen' ), «Мета-преп мета-подготовительной автора, Sprintf( '<A HREF ="%1$с" название ="%2$с" отн ="закладка"><Размах itemprop ="datePublished DateCreated DateModified">%3$с</пролет></а>', тегу get_permalink(), esc_attr( get_the_time() ), get_the_date() ), Sprintf( '<Размах класс ="Автор визитную карточку"><itemprop ="автор" HREF ="%1$с" название ="%2$с">%3$с</а></пролет>', get_author_posts_url( get_the_author_meta( 'ID' ) ), esc_attr( Sprintf( __( "Просмотр всех публикаций% с ', 'TwentyTen' ), get_the_author() ) ), get_the_author() ) ); } еще{ Е( __( '<Размах класс ="%1$с">Опубликовано</пролет> %2$с <Размах класс ="Мета-сентябре">к</пролет> %3$с. Обновленный <Размах itemprop ="DateModified">%4$с</пролет>.', 'TwentyTen' ), «Мета-преп мета-подготовительной автора, Sprintf( '<A HREF ="%1$с" название ="%2$с" отн ="закладка"><Размах itemprop ="datePublished DateCreated">%3$с</пролет></а>', тегу get_permalink(), esc_attr( get_the_time() ), get_the_date() ), Sprintf( '<Размах класс ="Автор визитную карточку"><itemprop ="автор" HREF ="%1$с" название ="%2$с">%3$с</а></пролет>', get_author_posts_url( get_the_author_meta( 'ID' ) ), esc_attr( Sprintf( __( "Просмотр всех публикаций% с ', 'TwentyTen' ), get_the_author() ) ), get_the_author() ), get_the_modified_date() ); } }
В functions.php заменить это
<Класс дел ="комментировать-автор визитную карточку">
При этом
<Класс дел ="комментировать-автор novcard">
В header.php заменить это
<дел ID ="обертка" класса ="hfeed">
При этом
<дел ID ="обертка" класса ="nohfeed">
В loop.php (3 случаи), петля-single.php, петля-page.php и петля-attachment.php заменить это
<дел ID ="после-<?PHP the_ID(); ?>" <?PHP post_class(); ?>>
При этом
<дел ID ="после-<?PHP the_ID(); ?>" <?PHP post_class(); ?> itemscope ItemType ="https://schema.org / Статья">
Двадцать одиннадцать 1.5
ком-ния очень скоро ...
Annotum База 1.1.1
В 7 файлы (функции особенности-articles.php, Отрывок типа article.php, Отрывок выдержка-default.php, Содержание типа article.php, Содержание page.php, Содержание контент-default.php, Содержание статья-pdf.php) замещать
<статья <?PHP post_class("Статья полный '); ?>>
с
<статья <?PHP post_class("Статья полный '); ?> itemscope ItemType ="https://schema.org / Статья">
Thanks — working on it — eisenberg.co.za
большой, grazie mille!