Исправление ошибок в плагине Instant Articles от Фейсбука

Когда плагин Instant Articles у Вордпресса для вывода «моментальных статей» в Фейсбуке понимает весь код записи правильно, он выдаёт в своём окне под каждым постом вот такое сообщение:

Исправление ошибок в плагине Instant Articles от Фейсбука

Однако можно столкнуться с ситуацией, когда выводится ошибка вида:

No rules defined for [...] in the context of InstantArticle

Вместо троеточия в фигурных скобках может быть любой HTML-код или отдельный тег.

Я столкнулся с такой ошибкой, когда установил и настроил для оптимизации рекламы на вордпрессе плагин FlatPM Pro, который добавил свои селекторы в код вида:

<div style = «flat_pm_start»> и <div style = «end»>

Способ первый

Изучив соответствующий синтаксис правил, выданный Фейсбуком в их же собственном руководстве к моментальным статьям, я понял, что всё можно настроить в самом плагине Instant Articles, для этого заходим в его настройки и включаем галочку «Enable custom transformer rulse» (добавить особые изменяющие правила):

Исправление ошибок в плагине Instant Articles от Фейсбука

Чтобы в моём случае проигнорировать совершенно не нужные в моментальных статьях теги, я использую правило игнорирования «IgnoreRule»:

{ «class»: «IgnoreRule», «selector» : «div.flat_pm_start» }

Полный код будет выглядеть так:

Открыть весь код

{
«rules»:
[

{ "class": "IgnoreRule", "selector" : "div.flat_pm_start" },
{ "class": "IgnoreRule", "selector" : "div.flat_pm_end" }

]
}

Этого достаточно, чтобы не вызывать ошибку при использовании FlatPM, но что делать с другими кодами и тегами, которые могут иметь место?

Для игнорирования:

{ «class»: «IgnoreRule», «selector» : «тут_тег» }

Для применения стандартного отображения:

{ "class": "PassThroughRule", "selector" : "тут_тег с классом" },

Пример: { "class": "PassThroughRule", "selector" : "span.header_post" } - в этом случае будет применён стандартный блок div без применения класса header_post, когда изначально это выглядит так: <span class = "header_post">... здесь контейнер ...</span>.

Открывается вариантов для замен целая масса, ниже лишь несколько примеров:

  • Код { «class»: «BoldRule», «selector» : «code» } сделает текст внутри тега <code></code> жирным.
  • { «class»: «BlockquoteRule», «selector» : «pre.kavichki» } — в кавычки возьмётся всё в теге <pre> с классом «kavichki».

Вариаций сделать нужный вид МС в ФБ — масса! Ну и избавиться от ошибок вида «No rules defined for [...] in the context of InstantArticle», конечно!

Второй способ

Кстати, можно эти способы дублировать или совмещать, одно другому не мешает.

Второй вариант вообще не подразумевает использование плагина от ФБ. Мы просто средствами Вордпресса не будем отдавать на вывод не нужные нам теги.

Осторожно, в этом случае и на самой странице сайта их не будет, проверяйте отображение постов после публикации.

Например, при вставке HTML-блока от Инстаграмм, он добавляет некие теги <g>, <svg> и <path> с разными параметрами и стилями. В них технические данные, без которых блок будет работать и так. Мы можем заменить их на <div> с невидимым свойством через стили.

Вот уже готовый код. Его нужно вставить в файл function.php вордпресса. Не забудьте предварительно сохранить себе копию файла. А ещё лучше добавлять через плагин ProFunction от разработчика wpshop или подобные.


Подпишись на рассылку и получай свежие кейсы первым:

✔ Нажимая кнопку ниже я даю согласие на обработку персональных данных.

Понравилась статья? Поделиться с друзьями:
Заработок в интернете - блог
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.