Intereting Posts
Лучший способ хранения & (Амперсанд) в базе данных MySQL Добавление других файлов css в wp_head как переформатировать число с запятыми Предупреждение: ini_set () отключен по соображениям безопасности Как вставить запись в MySQL с PHP с HTML-формой Как я могу поставить два оператора результатов поиска как один с помощью условного оператора? Cookies не отправляются туда и обратно в Opera Вычитайте дату и время с текущей даты и времени, чтобы найти возраст в PHP Должен ли я создать объект или работать с массивом? Является ли библиотека PDO быстрее, чем собственные функции MySQL? Запись идентификатора в базу данных и чтение пользователя WordPress с его идентификатором FFMPEG: добавьте изображение фиксированного размера на видео, независимо от ширины и высоты видео (разрешение) Как преобразовать дату из одного формата в другой в Php Как я могу извлечь конкретный фрейм из файла WMV? Пропускать значение a include к переменной

Изображение отсутствует и требуется – WordPress AMP Structure не добавляет атрибут изображения

При проверке моих сообщений WordPress с помощью Инструмента Google Structured Data Testing Tool появляется следующее сообщение об ошибке:

"Image: missing and required" 

У меня установлен официальный плагин WordPress AMP, который создал для меня страницы AMP. Проблема в том, что он не популярен для атрибута «image» для BlogPosting .

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

 private function get_post_image_metadata() { $post_image_meta = null; $post_image_id = false; if ( has_post_thumbnail( $this->ID ) ) { $post_image_id = get_post_thumbnail_id( $this->ID ); } else { $attached_image_ids = get_posts( array( 'post_parent' => $this->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'posts_per_page' => 1, 'orderby' => 'menu_order', 'order' => 'ASC', 'fields' => 'ids', 'suppress_filters' => false, ) ); if ( ! empty( $attached_image_ids ) ) { $post_image_id = array_shift( $attached_image_ids ); } } if ( ! $post_image_id ) { return false; } $post_image_src = wp_get_attachment_image_src( $post_image_id, 'full' ); if ( is_array( $post_image_src ) ) { $post_image_meta = array( '@type' => 'ImageObject', 'url' => $post_image_src[0], 'width' => $post_image_src[1], 'height' => $post_image_src[2], ); } return $post_image_meta; } 

Как я могу заполнить тег изображения для каждого сообщения, используя этот плагин AMP WordPress? Я хочу, чтобы страница передавала инструмент Structured Data Testing Tool, поэтому он также может пройти проверку AMP.

Обновление : причина, по которой изображение не отображается, заключается в том, что в сообщении нет встроенного изображения. Есть ли способ поместить изображение по умолчанию в случае, если его нет, поэтому он будет проходить проверку AMP / Schema.

Для соответствия HTML-спецификации AMP вам не нужно использовать структурированные данные Schema.org.

Если Google SDTT говорит, что свойство «отсутствует и требуется», это не означает, что это требуется AMP или Schema.org. Это означает, что Google не будет показывать одну из своих функций результатов поиска Google (например, Rich Snippets) для вашей страницы.

Например, есть Top Stories с функцией AMP : карусель, который ссылается на страницы AMP, показывая изображение с каждой страницы. Вот почему Google требует свойство image Schema.org для этой функции (для статей). Но прекрасно, что вы не можете предоставить изображение для своей статьи, единственное, что происходит, – это то, что ваша страница не может появиться в каруселях Top Stories.

Конечно, вы могли бы заполнить $post_image_meta с изображением по умолчанию (например, заполнителем), если is_array( $post_image_src ) является ложным, но это, скорее всего, не очень хорошая идея: изображение не было бы релевантным, поэтому пользователи, ищущие в Google Поиске, 't найти это полезно, поэтому Google Search будет интересоваться не показывать результат своим пользователям. (Но если и каким образом это на самом деле, это проблема с SEO, которая принадлежит веб-мастерам SE ).

Изображение по умолчанию для старых сообщений без изображений

 add_filter( 'amp_post_template_metadata', 'bbm_amp_modify_json_metadata', 10, 2 ); function bbm_amp_modify_json_metadata( $metadata, $post ) { if (!array_key_exists('image', $metadata)) { $metadata['image'] = array( '@type' => 'ImageObject', 'url' => get_template_directory_uri() . '/images/default.png', 'height' => 512, 'width' => 1024, ); } return $metadata; } 

От поддержки плагина amp . Я проверил, и он работает. Изображения должны быть не менее 696 пикселей в ширину .