О плагине Internal Link Juicer
Хороший плагин для сайтов на WordPress, даже в бесплатной версии. Можно прописать каждому посту/странице свои ключевые слова, а плагин самостоятельно построит внутреннюю перелинковку на сайте: найдет вхождения ключей в другие статьи и страницы и проставит в их содержимом dofollow-ссылки на соответствующие страницы.
Проблема
На одном из сайтов у меня этот плагин не «заработал» из коробки. В админке WP при этом он отображал информацию, что все ссылки проставлены и вообще всё отлично. Однако на сайте я ни одной этой ссылки не увидел, потому что плагин (по крайней мере, бесплатная его версия) создает отчеты не по фактически проставленным ссылкам, а по «запланированным». А проставлена эта ссылка или нет — он не проверяет.
Долго анализировал дебаг-логи и искал инфу о проблемах совместимости с другими плагинами (WPML, ACF, кэши и пр.), отключал по очереди все плагины, обновлял их и откатывал на более старые версии… Но нигде в логах не было и намека на ошибку. Разгадка оказалась банальной — Internal Link Juicer не работает с нестандартным выводом содержимого страницы (или поста).
В процессе изучения и серии тестов выяснилось, что:
- Плагин не записывает изменения в поле post_content, а добавляет ссылки непосредственно при генерации страницы (да, доп нагрузка и проблемы с кэшированием некоторых плагинов, которые обрабатывают страницу до того как её обработает плагин). Сначала думал что проблема — здесь.
- Плагин не работает с нестандартными выводами контента. То есть, если вы извлекаете для вывода на странице контент не через функцию «the_content()», а любым другим способом — ваши ссылки не появятся. Видимо, он использует фильтры, настроенные именно на эту функцию.
Из вышеперечисленного можно сделать логичный вывод, что плагин вполне может иметь как проблемы с кэширующими плагинами так и с некоторыми темами и нестандартными решениями, когда выводимый контент уже подвергается обработке какими-либо фильтрами.
Решение:
В моем случае помогло отредактировать код вывода контента, частично заменив мой код на the_content() для того, чтоб на сайте стали появлятся проставленные плагином ссылки.