Добрый день всем.
Я использую генератор "amp" на сайте WordPress, одно из действий этого плагина - добавить тег biolerplate непосредственно перед тегом </head>
и <noscript>
с резервным вариантом.
Консоль поиска Google постоянно предупреждает меня об определенной ошибке:
«Обязательный тег« Корпус с надписью для шаблона »отсутствует или неверен».
Итак, я начинаю расследовать.
Я обнаружил, что «что-то» вводит </head><body>
непосредственно перед открывающим тегом <noscript>
. Если я поменяю место, где я поместил тег noscript, остальные два тоже будут перемещены.
это код, представленный:
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style>
</head><body><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
Я провел много тестов, и похоже, что тег <noscript>
является точкой этой ошибки.
Я читал также некоторые другие ответы, в которых говорится, что документ не должен быть строгим xhtml 1.1, что не соответствует действительности. На самом деле, это первые вещи, представленные на странице:
<!DOCTYPE html>
<html amp lang="it-IT"><head><meta charset="utf-8"><link rel="dns-prefetch" href="https://cdn.ampproject.org">
Я пытаюсь выяснить, что я могу сделать, чтобы устранить эту ошибку, которая присутствует на многих сайтах, с различными плагинами и темами (а также версиями для WordPress).
UPDATE:
Я пытался вручную добавить тег <noscript>
в код, и каждый раз, когда я добавляю его в раздел <head>
, раздел закрывается, а раздел <body>
открывается без какого-либо класса (так что Жук).
если вы хотите увидеть ошибку, просто зайдите сюда и найдите код:
https://www.assistenzamalasanita.com/2015/07/errori-medici-durante-il-parto-come-si-valutano/amp/
ОБНОВЛЕНИЕ 2
Отключение ВСЕХ плагинов и переключение на тему по умолчанию не влияет на это.
Кроме того, я скопировал весь сайт как есть на другом сервере, на котором проблема отсутствует, сайты WP идентичны, а также конфигурации serer должны быть НО на работающем сайте. I видно, что у HTTP-запроса есть атрибут о версии php (7.0.2), которого нет у другого сайта.
Возможно ли, что это может повлиять на отображение страницы?
чтобы увидеть сайт, который работает:
https://www.doors.it/iride/2017/10/risarcimento-malasanita/amp
ОБНОВЛЕНИЕ 3
это та часть плагина, которая на самом деле пишет код шаблона (который имеет ошибочные метки головы и тела).
add_action( 'amp_post_template_head', 'amp_post_template_add_boilerplate_css' );
function amp_post_template_add_boilerplate_css( $amp_template ) {
?>
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
<?php
}
Как вы можете заметить, весь блок вставляется за один снимок, за ним нет логики, и страница должна отображаться как есть (в этом коде я попытался изменить теги на <nonscript>
и все все было в порядке, теги head не закрывались, а тег body открывался в нужном месте с правильными классами.