Linux 软件免费装
Banner图

RSS for Yandex Turbo

开发者 Flector
更新时间 2024年4月15日 03:41
捐献地址: 去捐款
PHP版本: 5.3 及以上
WordPress版本: 5.9

标签

feed rss yandex яндекс turbo турбо yandex turbo яндекс турбо

下载

1.19 1.20 1.21 1.22 1.27 1.28 1.29 1.25 1.32 1.18 1.26 1.30 1.23 1.24 1.31

详情介绍:

Данный плагин автоматически создаст на вашем сайте новую RSS-ленту (или несколько лент) для сервиса “Яндекс.Турбо” в полном соответствии с техническими требованиями Яндекса. После установки плагина не забудьте проверить его настройки в “Настройках\Яндекс.Турбо”. Чтобы добавить свою ленту в Яндекс.Турбо вам надо будет отправить заявку в Яндекс.Вебмастере (“Турбо-страницы\Источники”). И не забудьте перевести переключатель в положение “Вкл”. Если вам понравился этот плагин, то, пожалуйста, поставьте ему 5 звезд. Для плагина есть премиум-дополнение WPCase: Turbo Ads для неограниченной вставки рекламы на турбо-страницах.

屏幕截图:

  • Настройки плагина.
  • Метабокс плагина.

常见问题:

Инструкция по установке

  1. Установите плагин через меню “Плагины\Добавить новый” (искать “RSS for Yandex Turbo” или “Яндекс.Турбо”).
  2. Активируйте плагин в меню “Плагины”.
  3. Зайдите в настройки плагина “Настройки\Яндекс.Турбо” и сохраните их.
  4. Это все.

Яндекс забанил турбо-страницы, что делать?

Первое. Сравните оригинальную страницу и ее турбо-версию. Особое внимание уделите соответствию заголовков, картинок, наличию блока содержимого и прочего. Крайне рекомендую проверить опцию "Миниатюра в RSS" - не ставьте галку на этой опции, если в вашей теме в начале статьи не выводится "Изображение записи". Очень желательно установить именно тот размер миниатюры, который используется вашей темой. Как Яндекс проверяет соответствие картинок мне неизвестно - возможно, что по названию файла. В таком случае выбор неправильного размера изображения может быть причиной бана. Второе. Если вы используете механизм шаблонов в плагине, то проверьте, чтобы ваши шаблоны более-менее соответствовали обычным страницам. Механизм шаблонов нужен в основном для преобразования лэндинг-страниц, которые сверстаны в визуальных билдерах и не могут быть напрямую преобразованы в турбо-формат. А также для использования совместно с произвольными типами записей, использующими свои произвольные поля для хранения контента. В любом другом случае надо убедиться в том, что вы не злоупотребили механизмом шаблонов. Третье. Скачайте Яндекс.Браузер - в нем есть такая опция, как "Режим чтения". Если для вашего сайта эта опция доступна, то вы можете увидеть, как именно видит вашу страницу Яндекс. Сравните вашу страницу в режиме чтения с ее турбо-версией и отметьте для себя их отличия. Устраните отличия с помощью настроек плагина. Четвертое. Не стесняйтесь писать Платонам и требовать от них четкого ответа, что именно не так с вашими турбо-страницами. Яндекс запустил проверку турбо-страниц, но работает она сейчас достаточно криво. Например, Яндекс ругается на отсутствие даты и дает для примера старую версию турбо-страницы и забанненую версию этой турбо-страницы. Самое удивительное - и там и там даты нет. Как можно ругаться на несоответствие дат, если и там и там их нет? Поэтому еще раз повторю, доставайте Платонов - пусть связываются с командой, работающей над турбо-страницами и узнают точную причину бана. В противном случае, велика вероятность, что Платоны на глазок определят проблему и в этом случае устранить бан турбо-страниц будет сложно.

Лента не меняется, что делать?

Один из самых частых вопросов. Вы изменили настройки плагина, потом смотрите вашу RSS-ленту в браузере и не видите никаких изменений. Так происходит из-за того, что все браузеры кэшируют открытые RSS-ленты. Чтобы увидеть изменения надо произвести "жесткую" перезагрузку страницы. В браузерах это делается при нажатии клавиш Ctrl + F5.

Лента не проходит валидацию, что делать?

RSS-лента для Яндекс.Турбо никогда не сможет пройти обычную валидацию, так как технические требования Яндекс.Турбо несовместимы со стандартами обычного RSS. Проверять RSS-ленты надо в Яндекс.Вебмастере, в разделе "Турбо-страницы\Источники". После добавления RSS-ленты Яндекс через пару минут выдаст свой "диагноз".

Нет ни одного элемента item, что делать?

Убедитесь, что вы выбрали хотя бы один тип записей и не перемудрили с настройками исключений. Если проблема не в этом, то откройте RSS-ленту в браузере и визуально убедитесь, что она открывается. Зачастую начинающие вебмастера отключают RSS-ленты (вручную или плагинами типа Clearfy), а потом удивляются тому, что RSS-ленты на сайте не работают.

Cодержимое Турбо-страницы не соответствует оригинальной версии (в содержимом тега <![CDATA[]]> найдены закодированные символы)

Опытным путем установлено, что Яндекс ругается на стрелочки < и > (< и >), причем неважно закодированные они или нет. На вопрос, как это исправить Платоны посоветовали просто "забить". Цитата: "Такие предупреждения носят, в первую очередь, информационный характер. Насколько я вижу, в обоих случаях эти символы отображаются на Турбо-страницах корректно, поэтому подобные предупреждения можно игнорировать, они никак не повлияют на Турбо-версии страниц вашего сайта в выдаче."

Яндекс сильно нагружает сервер, что делать?

Установите любой из плагинов кэширования. Они все умеют кэшировать RSS-ленты. Бывает, что боты Яндекса сходят с ума и начинают запрашивать RSS-ленты по паре раз в минуту - даже мощный сервер под такой нагрузкой может "лечь". Убедить Платонов в том, что это ненормально практически невозможно, а поэтому установка плагина кэширования это единственный способ решить проблему излишней нагрузки.

URL источника запрещен в robots.txt, что делать?

Добавьте в robots.txt директиву: Allow: /feed/turbo/ Где "turbo" это имя вашей RSS-ленты. Учтите, что сервис Яндекс.Турбо кэширует полученный robots.txt, так что изменения в robots.txt он заметит не сразу!

Как добавить "подпись" к записям ленты?

В плагине есть фильтр yturbo_the_content для обработки контента записей. Пример использования (добавьте этот код в файл functions.php вашей темы): `function yturbo_sign( $content ) { $rsspermalink = esc_url( apply_filters( 'the_permalink_rss', get_permalink() ) ); $sign = 'Сообщение "'.get_the_title_rss().'" появилось сначала на "'.get_bloginfo_rss('title').'".'; $content .= $sign; return $content; } add_filter( 'yturbo_the_content', 'yturbo_sign' );` И вы получите подпись, аналогичную подписи от плагина Yoast SEO.

Как использовать кнопки с произвольным содержимым?

Добавляем кнопку в качестве "подписи". `function my_yturbo_sign_buttons( $content ) { $sign = ' ДОРОГИЕ ЧИТАТЕЛИ! Если вам необходимо с нами связаться — позвоните нам (круглосуточно). Это быстро и бесплатно! Москва '; $content .= $sign; return $content; } add_filter( 'yturbo_the_content', 'my_yturbo_sign_buttons' );` Добавляем кнопку в виде шорткода. `function turbobutton_shortcode( $atts, $content ) { //получаем настройки плагина, чтобы узнать имя RSS-ленты $yturbo_options = get_option('yturbo_options'); $rssturboname = $yturbo_options['ytrssname']; //если это не наша RSS-лента, то шорткод будет удален if ( ! is_feed($rssturboname) ) return ''; //формируем кнопку шорткода $content = ' Яндекс '; return $content; } add_shortcode ( 'turbobutton', 'turbobutton_shortcode' );Теперь вам достаточно добавить в контент код[turbobutton]` и в нужном месте записи будет выведена кнопка (только на турбо-страницах). Замена указанной ссылки на кнопку. Предположим, что у вас имеется конкретная ссылка и вы хотите ее заменить на кнопку на турбо-страницах. Например, ваша ссылка выглядит так: <a class="phone" href="tel:+74959998877">+7(495)999-88-77</a> Чтобы заменить ее на турбо-страницах на кнопку вам надо использовать код: `function yturbo_replace_link( $content ) { //что заменить $link = '+7(495)999-88-77'; //на что заменить $button = '+7(495)999-88-77'; //производим замену $content = str_replace($link, $button, $content); return $content; } add_filter( 'yturbo_the_content', 'yturbo_replace_link' );` Замена всех ссылок на кнопки по регулярному выражению. Предположим, что у вас есть однотипные ссылки вида: <a class="buy" href="http://www.wptest.ru/buy_test/">Купить товар «Название товара»</a> <a class="buy" href="http://www.wptest.ru/buy_test2/">Купить товар «Название товара 2»</a> Чтобы заменить их на кнопки на турбо-страницах вы должны использовать код: `function yturbo_replace_all_links( $content ) { //что заменить $pattern = '/Купить товар «(.*?)»<\/a>/i'; //на что заменить $replacement = '$2'; //производим замену $content = preg_replace($pattern, $replacement, $content); return $content; } add_filter( 'yturbo_the_content', 'yturbo_replace_all_links' );` Если вам нужна будет помощь с регулярками, то спрашивайте на форуме плагина.

Как использовать форму обратной связи?

Есть 3 способа использования формы обратной связи: а) Вы можете использовать "блок обратной связи" (включается в настройках плагина). Форма обратной связи будет выведена при клике на соответствующую кнопку в этом блоке. б) Вы можете вывести готовую форму обратной связи прямо в контенте записи (шорткодом, выводимым только на турбо-страницах). Для этого используйте код: `function turbocontactform_shortcode( $atts, $content ) { //получаем настройки плагина, чтобы узнать имя RSS-ленты $yturbo_options = get_option('yturbo_options'); $rssturboname = $yturbo_options['ytrssname']; //если это не наша RSS-лента, то шорткод будет удален if ( ! is_feed($rssturboname) ) return ''; //создаем форму обратной связи //data-send-to должен содержать email, принадлежащий вашему домену //при заполнении data-agreement-company обязательно нужно указать и data-agreement-link $content = ' '; return $content; } add_shortcode ( 'turbocontactform', 'turbocontactform_shortcode' );Форма обратной связи будет выведена в полном виде только на турбо-страницах при использовании шорткода[turbocontactform]`. в) Вы можете вывести кнопку, при клике на которую будет выведена форма обратной связи (шорткодом, выводимым только на турбо-страницах). Для этого используйте код: `function turbocontactformbutton_shortcode( $atts, $content ) { //получаем настройки плагина, чтобы узнать имя RSS-ленты $yturbo_options = get_option('yturbo_options'); $rssturboname = $yturbo_options['ytrssname']; //если это не наша RSS-лента, то шорткод будет удален if ( ! is_feed($rssturboname) ) return ''; //создаем кнопку, выводящую по клику форму обратной связи //data-send-to должен содержать email, принадлежащий вашему домену //при заполнении data-agreement-company обязательно нужно указать и data-agreement-link $content = ' <button formaction="mailto:mail@example.com" data-background-color="#5B97B0" data-color="white" data-primary="true" data-send-to="mail@example.com" data-agreement-company="ООО Ромашка" data-agreement-link="http://example.com">Оставить заявку '; return $content; } add_shortcode ( 'turbocontactformbutton', 'turbocontactformbutton_shortcode' );Шорткод[turbocontactformbutton]` выведет кнопку "Оставить заявку", при клике на которую будет открыта форма обратной связи (и кнопка и форма обратной связи будут выведены только на турбо-страницах).

Шаблоны и плагин Advanced Custom Fields

В шаблонах записей можно использовать произвольные поля. Для этого достаточно обернуть название произвольного поля символами %% (пример - %%_aioseop_title%%). Однако, при использовании произвольных полей, созданных плагином Advanced Custom Fields зачастую получить значение этих произвольных полей затруднительно, так как ACF хранит многие поля в своем собственном формате. Как это обойти? В плагине есть фильтр шаблонов yturbo_the_template, которым можно воспользоваться. Покажу на примере, предположим у вас в ACF созданы произвольное поля: myimage - тип "Изображение", возвращаемое значение "Массив изображения". steps - тип "Повторитель", внутри есть произвольные поля:     image - тип "Изображение", возвращаемое значение "Ссылка на изображение";     text - тип "Текст". Если вы пропишите в шаблоне: `%%myimage%% %%steps%% %%post_content%%` То в результате получите что-то типа: ` 92332 контент записи ` То есть вместо картинки вы получили ID этого массива картинок, а поле типа "Повторитель" вообще было проигнорировано. Вот для обработки таких нестандартных произвольных полей и нужен фильтр yturbo_the_template. Вот пример кода, обрабатывающего эти поля: `//обработка произвольных полей плагина ACF begin function yturbo_acf_template( $content ) { //обрабатываем только нужные нам поля (остальные обработает плагин RSS for Yandex Turbo) if (preg_match_all("/%%(.*?)%%/i", $content, $res)) { foreach ($res[0] as $r) { //обрабатываем поле %%myimage%% (заменяем его на результат работы функции ct_get_myimage) if($r == '%%myimage%%') { $content = str_replace($r, ct_get_myimage(), $content); } //обрабатываем поле %%steps%% (заменяем его на результат работы функции ct_get_steps() ) if($r == '%%steps%%') { $content = str_replace($r, ct_get_steps(), $content); } } } return $content; } add_filter( 'yturbo_the_template', 'yturbo_acf_template' ); //обработка произвольных полей плагина ACF end //обработка произвольного поля %%myimage%% begin function ct_get_myimage() { if ($field = get_field('myimage')) { $output = ' '; } return $output; } //обработка произвольного поля %%myimage%% end //обработка произвольного поля %%steps%% begin function ct_get_steps() { if ($items = get_field('steps')) { $count = 0; $i = 1; foreach ($items as $item) {$count++;} foreach ($items as $item) { $output .= ' Шаг ' . $i . ' из ' . $count . ' '; $i++; $output .= ' '; $output .= $item['text']; } } return $output; } //обработка произвольного поля %%steps%% end` Принцип довольно простой и я думаю, что вам должно быть тут все понятно. Результатом этого кода будет что-то типа: ` Шаг 1 из 2 первое изображение Шаг 2 из 2 второе изображение контент записи Учтите, что результат вывода вашего шаблона будет потом обработан фильтрами плагина. Это может вызвать определенные проблемы, так как фильтры плагина удалят всю лишнюю разметку, которая вам может быть нужна. Например, если вы пытаетесь создать турбо-галерею, а плагин каждую вашу картинку оборачивает в тег , что портит разметку турбо-галереи. В таком случае вам нужно воспользоваться фильтромyturbo_before_ads`, который срабатывает почти в самом конце обработки контента записи прямо перед вставкой рекламы. Однако, ваши переменные не должны быть обернуты символами %% (их содержимое будет удалено при обработке шаблона). Воспользуйтесь любыми другими символами, чтобы отфильтровать потом вашу переменную.

Какие шорткоды можно использовать в шаблонах?

а) [yt-permalink] - выводит ссылку на текущую запись. б) [yt-title] - выводит заголовок текущей записи. Если вам необходимы какие-то дополнительные шорткоды, то напишите об этом на форуме. Я обязательно постараюсь их добавить в следующей версии плагина.

У меня относительные ссылки на картинки, что делать?

Можно использовать код: `function yturbo_replace_src_links( $content ) { $pattern = '/src="\/(.*?)"/i'; $replacement = 'src="' . get_bloginfo('url') . '/$1"'; $content = preg_replace($pattern, $replacement, $content); return $content; } add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); ` Этот код заменит все относительные ссылки на абсолютные.

Как задать произвольный заголовок для записей?

Яндекс стал ругаться на несоответствие заголовков обычной страницы и ее турбо-версии, поэтому функция использования заголовков из SEO-плагинов была удалена из настроек плагина. Однако, если в вашей теме выводится не стандартный заголовок, а обработанный какими то функциями, то плагин не сможет его вывести - он всегда будет выводить стандартный заголовок, прописанный в редакторе. В этом случае вы можете воспользоваться фильтром yturbo_custom_title. Как его использовать? Самый простой вариант: `function my_custom_title_for_turbo( $title ) { //просто пример добавления "Статья: " к заголовку записи $title = 'Статья: ' . get_the_title(); return $title; } add_filter( 'yturbo_custom_title', 'my_custom_title_for_turbo' );` Но советую использовать более полный вариант, учитывающий требования Яндекса к заголовкам записей: `function my_custom_title_for_turbo( $title ) { //просто пример добавления "Статья: " к заголовку записи $title = 'Статья: ' . get_the_title(); //удаляем эмоджи (яндекс выдает на них ошибку) $title = yturbo_remove_emoji($title); //устанавливаем заголовком название сайта, если заголовок пустой $title = yturbo_empty_title($title); //преобразуем спец. символы в html-сущности $title = esc_html($title); //обрезаем заголовок по словам, чтобы не превышать ограничение в 240 символов $title = yturbo_cut_by_words(237, $title); return $title; } add_filter( 'yturbo_custom_title', 'my_custom_title_for_turbo' );` В этом случае будут выполнены все требования Яндекса к заголовкам записей.

Как переопределить список тегов для удаления?

По умолчанию в плагине можно удалить теги только из предустановленного списка тегов. В этом списке нет важных тегов вроде <p> и <ul>, так как их неосторожное удаление может привести к фатальным последствиям. Однако, в плагине есть фильтр, которым можно расширить список тегов для удаления и включить в него нужные вам теги. Делается это так: `function my_custom_tags_list( $tags ) { //скобки и пробелы недопустимы //не забываем запятую в начале $tags .= ',p,table,ul'; return $tags; } add_filter( 'yturbo_tags_list', 'my_custom_tags_list' );` В список можно включать только парные теги (имеющие тег закрытия). Самозакрывающиеся теги фильтром будут проигнорированы.

Как вывести изображение записи, записанное в произвольном поле?

В некоторых темах (особенно старых) изображение записи может храниться в своем собственном произвольном поле. Чтобы вывести его на турбо-страницах надо использовать примерно такой код: `function my_yturbo_thumb_imgurl($imgurl) { //вместо 'url-image' подставьте название вашего произвольного //поля с ссылкой на изображение $imgurl = get_post_meta( get_the_ID(), 'url-image', true); return $imgurl; } add_filter('yturbo_thumb_imgurl', 'my_yturbo_thumb_imgurl'); function my_yturbo_thumb_caption($caption) { //вместо 'caption-image' подставьте название вашего произвольного //поля, где хранится подпись к изображению $caption = get_post_meta( get_the_ID(), 'caption-image', true); return $caption; } add_filter('yturbo_thumb_caption', 'my_yturbo_thumb_caption');` Подпись к изображению необязательна и не будет выведена, если ее нет. Важно! Изображение из произвольного поля будет выводиться только, если включен вывод "Миниатюр в RSS" (любого размера, это не важно) и только если не установлено изображение через "родной" функционал WordPress.

更新日志:

1.32 (10.02.2022) 1.31 (04.02.2022) 1.30 (19.04.2021) 1.29 (05.02.2021) 1.28 (14.08.2020) 1.27 (06.04.2020) 1.26 (20.03.2020) 1.25 1.24 1.23 1.22 1.21 1.20 1.19 1.18 1.17 1.16 1.15 1.14 1.13 1.12 1.11 1.10 1.09 1.08 1.07 1.06 1.05 1.04 1.03 1.02 1.01 1.00