RSS for Yandex Turbo - Version 1.26

Version Description

  • -.
  • SEO- ( ).
  • .
  • mp3 ( -).
  • .
  • ( ).
  • " ".
  • RSS- ( ).
  • ( ).
Download this release

Release Info

Developer Flector
Plugin Icon 128x128 RSS for Yandex Turbo
Version 1.26
Comparing to
See all releases

Code changes from version 1.25 to 1.26

Files changed (4) hide show
  1. inc/yturbo-css.css +46 -2
  2. inc/yturbo-script.js +12 -16
  3. readme.txt +83 -20
  4. rss-for-yandex-turbo.php +249 -215
inc/yturbo-css.css CHANGED
@@ -54,7 +54,40 @@ pre {
54
  #yadonate:focus,#yadonate:active {
55
  outline:none;
56
  box-shadow: none;
57
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  td table {
59
  width: auto;
60
  }
@@ -87,10 +120,21 @@ td table {
87
  color:black;
88
  cursor: pointer;
89
  }
 
 
 
 
 
 
 
 
 
 
 
90
  .hide {
91
  display:none;
92
  }
93
- .types {
94
  margin-bottom: 6px;
95
  display: table;
96
  }
54
  #yadonate:focus,#yadonate:active {
55
  outline:none;
56
  box-shadow: none;
57
+ }
58
+ .alert-success {
59
+ color: #155724;
60
+ background-color: #d4edda;
61
+ border-color: #c3e6cb;
62
+ border: 1px solid #a9d6b3!important;
63
+ }
64
+ .alert-success a{
65
+ color: #155724;
66
+ }
67
+ .alert-success a:focus {
68
+ color: #124964;
69
+ box-shadow: none;
70
+ outline: 1px solid transparent;
71
+ }
72
+ .alert-success a:hover {
73
+ color: rgba(21, 87, 36, 0.8);
74
+ }
75
+ .alert-danger {
76
+ color: #721c24;
77
+ background-color: #f8d7da;
78
+ border-color: #f5c6cb;
79
+ }
80
+ .alert {
81
+ position: relative;
82
+ padding: 0px 10px 0px 10px;
83
+ border: 1px solid transparent;
84
+ border-radius: .25rem;
85
+ margin: 15px 6px 6px 6px;
86
+ }
87
+ .alert p {
88
+ margin: 17px 0 17px 0;
89
+ text-align: left;
90
+ }
91
  td table {
92
  width: auto;
93
  }
120
  color:black;
121
  cursor: pointer;
122
  }
123
+ #showlistrss {
124
+ color: #0073aa;
125
+ transition-property: border,background,color;
126
+ transition-duration: .05s;
127
+ transition-timing-function: ease-in-out;
128
+ cursor: pointer;
129
+ text-decoration: underline;
130
+ }
131
+ #showlistrss:hover,#showlistrss:active {
132
+ color: #00a0d2;
133
+ }
134
  .hide {
135
  display:none;
136
  }
137
+ .types, .shortcodes {
138
  margin-bottom: 6px;
139
  display: table;
140
  }
inc/yturbo-script.js CHANGED
@@ -529,22 +529,6 @@ jQuery(document).ready(function($) {
529
  }
530
  });
531
 
532
- var seo = jQuery('#ytseotitle');
533
-
534
- if (jQuery('#ytseotitle').is(':checked')) {
535
- jQuery('.ytseoplugintr').show();
536
- } else {
537
- jQuery('.ytseoplugintr').hide();
538
- }
539
-
540
- seo.change(function() {
541
- if (jQuery('#ytseotitle').is(':checked')) {
542
- jQuery('.ytseoplugintr').fadeIn();
543
- } else {
544
- jQuery('.ytseoplugintr').hide();
545
- }
546
- });
547
-
548
  var delturbo = jQuery('#ytremoveturbo');
549
 
550
  if (jQuery('#ytremoveturbo').is(':checked')) {
@@ -1020,6 +1004,18 @@ jQuery(function() {
1020
  })
1021
  });
1022
 
 
 
 
 
 
 
 
 
 
 
 
 
1023
  (function($) {
1024
  $(function() {
1025
 
529
  }
530
  });
531
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
532
  var delturbo = jQuery('#ytremoveturbo');
533
 
534
  if (jQuery('#ytremoveturbo').is(':checked')) {
1004
  })
1005
  });
1006
 
1007
+ jQuery(function() {
1008
+ jQuery('#showlistrss').click(function(){
1009
+ if (jQuery('#allrss').is(':hidden')) {
1010
+ jQuery('#allrss').fadeIn();
1011
+ jQuery('#showlistrss').text('скрыть');
1012
+ } else {
1013
+ jQuery('#allrss').hide();
1014
+ jQuery('#showlistrss').text('показать');
1015
+ }
1016
+ })
1017
+ });
1018
+
1019
  (function($) {
1020
  $(function() {
1021
 
readme.txt CHANGED
@@ -3,19 +3,19 @@ Contributors: Flector
3
  Donate link: https://money.yandex.ru/to/41001443750704/200
4
  Tags: yandex, turbo, yandex turbo, rss, feed, турбо, яндекс турбо, яндекс
5
  Requires at least: 4.4
6
- Tested up to: 5.3.2
7
  Requires PHP: 5.3
8
- Stable tag: 1.25
9
 
10
  Создание RSS-ленты для сервиса Яндекс.Турбо.
11
 
12
  == Description ==
13
 
14
- Данный плагин автоматически создаст на вашем сайте новую RSS-ленту (или несколько лент) для сервиса “Яндекс.Турбо” в полном соответствии с [техническими требованиями](https://tech.yandex.ru/turbo/doc/rss/markup-docpage/) Яндекса.
15
 
16
  После установки плагина не забудьте проверить его настройки в &#8220;<strong>Настройках\Яндекс.Турбо</strong>&#8221;.
17
 
18
- Чтобы добавить свою ленту в Яндекс.Турбо вам надо будет отправить заявку в Яндекс.Вебмастере (&#8220;Турбо-страницы\Источники&#8221;).
19
 
20
  Если вам понравился этот плагин, то, <strong>пожалуйста</strong>, поставьте ему 5 звезд.
21
 
@@ -29,13 +29,27 @@ Stable tag: 1.25
29
  3. Зайдите в настройки плагина &#8220;<strong>Настройки\Яндекс.Турбо</strong>&#8221; и сохраните их.
30
  4. Это все.
31
 
 
 
 
 
 
 
 
 
 
 
32
  = Лента не проходит валидацию, что делать? =
33
 
34
- Лента для Яндекс.Турбо никогда не сможет пройти валидацию, так как технические требования Яндекс.Турбо несовместимы со стандартами обычного RSS.
 
 
35
 
36
- = Яндекс сильно нагружает сервер при запросе RSS-ленты, что делать? =
37
 
38
- Установите любой из плагинов кэширования. Они все умеют кэшировать RSS-ленты.
 
 
39
 
40
  = URL источника запрещен в robots.txt, что делать? =
41
 
@@ -287,7 +301,7 @@ add_filter( 'yturbo_the_template', 'yturbo_acf_template' );
287
  function ct_get_myimage() {
288
 
289
  if ($field = get_field('myimage')) {
290
- $output = '<figure><img src="' . $field['sizes']['photo'] . '" alt="' . get_the_title() . '" /></figure>';
291
  }
292
  return $output;
293
  }
@@ -316,7 +330,7 @@ function ct_get_steps() {
316
 
317
  Принцип довольно простой и я думаю, что вам должно быть тут все понятно. Результатом этого кода будет что-то типа:
318
 
319
- `<figure><img src="http://site.com/wp-content/uploads/2018/06/cover-47-260x260.jpg" /><figcaption>Тут был alt</figcaption></figure>
320
  <h3>Шаг 1 из 2 </h3>
321
  <figure><img src="http://site.com/wp-content/uploads/2018/06/cover-45.jpg" /></figure>
322
  <p>первое изображение</p>
@@ -325,7 +339,7 @@ function ct_get_steps() {
325
  <p>второе изображение</p>
326
  <p>контент записи</p>`
327
 
328
- Атрибут `alt` был заменен на `figcaption` из-за настроек плагина (учтите, что результат вывода вашего шаблона будет потом обработан фильтрами плагина).
329
 
330
  = Какие шорткоды можно использовать в шаблонах? =
331
 
@@ -334,7 +348,7 @@ function ct_get_steps() {
334
 
335
  Если вам необходимы какие-то дополнительные шорткоды, то напишите об этом на [форуме](https://wordpress.org/support/plugin/rss-for-yandex-turbo/). Я обязательно постараюсь их добавить в следующей версии плагина.
336
 
337
- = У меня относительные ссылки на изображения, что делать? =
338
 
339
  Можно использовать код:
340
 
@@ -350,6 +364,43 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
350
 
351
  Этот код заменит все относительные ссылки на абсолютные.
352
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
353
  == Screenshots ==
354
 
355
  1. Пример добавленных RSS-лент в Яндекс.Вебмастере.
@@ -358,6 +409,18 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
358
 
359
  == Changelog ==
360
 
 
 
 
 
 
 
 
 
 
 
 
 
361
  = 1.25 =
362
 
363
  * для использования в шаблонах добавлены шорткоды [yt-permalink], [yt-title].
@@ -379,7 +442,7 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
379
  * заголовки записей обрезаются до 240 символов (ограничение Яндекса).
380
  * при незаполненном заголовке у записей будет выводиться заголовок сайта.
381
  * снова удаляются unicode-символы из контента (Яндекс опять перестал их понимать).
382
- * в настройках плагина можно скрыть рекламные блоки.
383
  * исправлен css на предмет совместимости с WordPress 5.3.
384
  * при отключении турбо-страниц можно выбрать используемый протокол.
385
  * изменен формат даты записей - теперь он учитывает часовой пояс.
@@ -391,11 +454,11 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
391
  * исправлена ошибка с видео, вставленным в гутенберге.
392
  * в контенте записей теперь выполняются гутенберг-блоки.
393
  * исправлена ошибка с неработающим поиском.
394
- * в похожих записях теперь выводятся записи только из той же под-рубрики.
395
 
396
  = 1.22 =
397
 
398
- * исправлены заголовки SEO-плагинов для произвольных типов записей.
399
  * исправлен notice по поводу "Undefined index: template-post" в метабоксе при редактировании записи.
400
  * для mp4-видео теперь выводится картинка-заглушка (Яндекс без нее отказывается выводить видео).
401
  * исправлены регулярки, обрабатывающие изображения с подписью (WordPress изменил формат их вывода).
@@ -452,7 +515,7 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
452
 
453
  = 1.15 =
454
  * исправлен баг с сохранением в блоке обратной связи звонка и контактной формы.
455
- * интегрирован ID плагина (https://yandex.ru/support/webmaster/turbo/plugins.html).
456
 
457
  = 1.14 =
458
 
@@ -460,7 +523,7 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
460
  * добавлена возможность удалять указанные шорткоды из контента записей в RSS-ленте.
461
  * удален выбор тематики записи (по спецификации Яндекса тематика используется только в Дзене и Новостях).
462
  * обновлены часто задаваемые вопросы (добавлены подсказки по использованию кнопок и формы обратной связи).
463
- * добавлена возможность задавать заголовок записей (тег &lt;h1>) в RSS-ленте из SEO-плагинов.
464
  * некоторые настройки плагина перенесены в другие секции настроек (для более удобной настройки плагина).
465
  * отключен вывод миниатюр для похожих записей при включении непрерывной ленты статей (так как они все равно не используются в этом случае).
466
  * добавлено ограничение на количество похожих записей (по спецификации их не может быть больше 30 штук).
@@ -505,7 +568,7 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
505
  = 1.06 =
506
  * добавлена опция отключения вывода автора записи (тег &lt;author> для Яндекс.Турбо не является обязательным).
507
  * из контента записей теперь удаляются все спец. символы юникода (как невалидные в rss).
508
- * полностью переписаны регулярки плагина - из тегов img теперь вырезаются все лишние атрибуты.
509
 
510
  = 1.05 =
511
  * я дико извиняюсь за столь частые обновления плагина!
@@ -517,7 +580,7 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
517
  * удален action "rss2_item" (во избежание добавления в ленту левых тегов от плагинов вроде Jetpack).
518
  * при удалении плагина настройки плагина теперь будут полностью удалены из базы данных.
519
  * при деактивации плагина RSS-ленты плагина теперь будут выдавать обычную 404-ошибку.
520
- * исправлены тормоза в админке, если установлено слишком большое общее количество записей в RSS-ленте.
521
 
522
  = 1.03 =
523
  * добавлен третий рекламный блок и возможность выводить рекламу в середине записи.
@@ -531,10 +594,10 @@ add_filter( 'yturbo_the_content', 'yturbo_replace_src_links' ); `
531
  = 1.02 =
532
  * добавлена возможность изменения имени ленты в урле.
533
  * функция wpautop теперь обрабатывает контент после удаления тегов, а не до.
534
- * переписана функция удаления тегов без контента (теперь она справляется с большой вложенностью).
535
 
536
  = 1.01 =
537
- * миниатюра в заголовке записи теперь выводится только, если включена соответствующая опция в настройках (проверьте настройки!).
538
  * из разметки изображений убраны атрибуты srcset и sizes.
539
  * исправлена ошибка парсинга изображений (когда пропадал весь текст записи).
540
 
3
  Donate link: https://money.yandex.ru/to/41001443750704/200
4
  Tags: yandex, turbo, yandex turbo, rss, feed, турбо, яндекс турбо, яндекс
5
  Requires at least: 4.4
6
+ Tested up to: 5.4
7
  Requires PHP: 5.3
8
+ Stable tag: 1.26
9
 
10
  Создание RSS-ленты для сервиса Яндекс.Турбо.
11
 
12
  == Description ==
13
 
14
+ Данный плагин автоматически создаст на вашем сайте новую RSS-ленту (или несколько лент) для сервиса &#8220;Яндекс.Турбо&#8221; в полном соответствии с [техническими требованиями](https://yandex.ru/dev/turbo/doc/rss/markup-docpage/) Яндекса.
15
 
16
  После установки плагина не забудьте проверить его настройки в &#8220;<strong>Настройках\Яндекс.Турбо</strong>&#8221;.
17
 
18
+ Чтобы добавить свою ленту в Яндекс.Турбо вам надо будет отправить заявку в Яндекс.Вебмастере (&#8220;Турбо-страницы\Источники&#8221;). И не забудьте перевести переключатель в положение &#8220;Вкл&#8221;.
19
 
20
  Если вам понравился этот плагин, то, <strong>пожалуйста</strong>, поставьте ему 5 звезд.
21
 
29
  3. Зайдите в настройки плагина &#8220;<strong>Настройки\Яндекс.Турбо</strong>&#8221; и сохраните их.
30
  4. Это все.
31
 
32
+ = Яндекс забанил турбо-страницы, что делать? =
33
+
34
+ Первое. Сравните оригинальную страницу и ее турбо-версию. Особое внимание уделите соответствию заголовков, картинок, наличию блока содержимого и прочего. Крайне рекомендую проверить опцию "Миниатюра в RSS" - не ставьте галку на этой опции, если в вашей теме в начале статьи не выводится "Изображение записи". Очень желательно установить именно тот размер миниатюры, который используется вашей темой. Как Яндекс проверяет соответствие картинок мне неизвестно - возможно, что по названию файла. В таком случае выбор неправильного размера изображения может быть причиной бана.
35
+
36
+ Второе. Если вы используете механизм шаблонов в плагине, то проверьте, чтобы ваши шаблоны более-менее соответствовали обычным страницам. Механизм шаблонов нужен в основном для преобразования лэндинг-страниц, которые сверстаны в визуальных билдерах и не могут быть напрямую преобразованы в турбо-формат. А также для использования совместно с произвольными типами записей, использующими свои произвольные поля для хранения контента. В любом другом случае надо убедиться в том, что вы не злоупотребили механизмом шаблонов.
37
+
38
+ Третье. Скачайте Яндекс.Браузер - в нем есть такая опция, как "Режим чтения". Если для вашего сайта эта опция доступна, то вы можете увидеть, как именно видит вашу страницу Яндекс. Сравните вашу страницу в режиме чтения с ее турбо-версией и отметьте для себя их отличия. Устраните отличия с помощью настроек плагина.
39
+
40
+ Четвертое. Не стесняйтесь писать Платонам и требовать от них четкого ответа, что именно не так с вашими турбо-страницами. Яндекс запустил проверку турбо-страниц, но работает она сейчас достаточно криво. Например, Яндекс ругается на отсутствие даты и дает для примера старую версию турбо-страницы и забанненую версию этой турбо-страницы. Самое удивительное - и там и там даты нет. Как можно ругаться на несоответствие дат, если и там и там их нет? Поэтому еще раз повторю, доставайте Платонов - пусть связываются с командой, работающей над турбо-страницами и узнают точную причину бана. В противном случае, велика вероятность, что Платоны на глазок определят проблему и в этом случае устранить бан турбо-страниц будет сложно.
41
+
42
  = Лента не проходит валидацию, что делать? =
43
 
44
+ RSS-лента для Яндекс.Турбо никогда не сможет пройти обычную валидацию, так как технические требования Яндекс.Турбо несовместимы со стандартами обычного RSS.
45
+
46
+ Проверять RSS-ленты надо в Яндекс.Вебмастере, в разделе "Турбо-страницы\Источники". После добавления RSS-ленты Яндекс через пару минут выдаст свой "диагноз".
47
 
48
+ = Яндекс сильно нагружает сервер, что делать? =
49
 
50
+ Установите любой из плагинов кэширования. Они все умеют кэшировать RSS-ленты.
51
+
52
+ Бывает, что боты Яндекса сходят с ума и начинают запрашивать RSS-ленты по паре раз в минуту - даже мощный сервер под такой нагрузкой может "лечь". Убедить Платонов в том, что это ненормально практически невозможно, а поэтому установка плагина кэширования это единственный способ решить проблему излишней нагрузки.
53
 
54
  = URL источника запрещен в robots.txt, что делать? =
55
 
301
  function ct_get_myimage() {
302
 
303
  if ($field = get_field('myimage')) {
304
+ $output = '<figure><img src="' . $field['sizes']['photo'] . '" /></figure>';
305
  }
306
  return $output;
307
  }
330
 
331
  Принцип довольно простой и я думаю, что вам должно быть тут все понятно. Результатом этого кода будет что-то типа:
332
 
333
+ `<figure><img src="http://site.com/wp-content/uploads/2018/06/cover-47.jpg" /></figure>
334
  <h3>Шаг 1 из 2 </h3>
335
  <figure><img src="http://site.com/wp-content/uploads/2018/06/cover-45.jpg" /></figure>
336
  <p>первое изображение</p>
339
  <p>второе изображение</p>
340
  <p>контент записи</p>`
341
 
342
+ Учтите, что результат вывода вашего шаблона будет потом обработан фильтрами плагина.
343
 
344
  = Какие шорткоды можно использовать в шаблонах? =
345
 
348
 
349
  Если вам необходимы какие-то дополнительные шорткоды, то напишите об этом на [форуме](https://wordpress.org/support/plugin/rss-for-yandex-turbo/). Я обязательно постараюсь их добавить в следующей версии плагина.
350
 
351
+ = У меня относительные ссылки на картинки, что делать? =
352
 
353
  Можно использовать код:
354
 
364
 
365
  Этот код заменит все относительные ссылки на абсолютные.
366
 
367
+ = Как задать произвольный заголовок для записей? =
368
+
369
+ Яндекс стал ругаться на несоответствие заголовков обычной страницы и ее турбо-версии, поэтому функция использования заголовков из SEO-плагинов была удалена из настроек плагина. Однако, если в вашей теме выводится не стандартный заголовок, а обработанный какими то функциями, то плагин не сможет его вывести - он всегда будет выводить стандартный заголовок, прописанный в редакторе. В этом случае вы можете воспользоваться фильтром `yturbo_custom_title`.
370
+
371
+ Как его использовать? Самый простой вариант:
372
+
373
+ `function my_custom_title_for_turbo( $title ) {
374
+
375
+ //просто пример добавления "Статья: " к заголовку записи
376
+ $title = 'Статья: ' . get_the_title();
377
+
378
+ return $title;
379
+ }
380
+ add_filter( 'yturbo_custom_title', 'my_custom_title_for_turbo' );`
381
+
382
+ Но советую использовать более полный вариант, учитывающий требования Яндекса к заголовкам записей:
383
+
384
+ `function my_custom_title_for_turbo( $title ) {
385
+
386
+ //просто пример добавления "Статья: " к заголовку записи
387
+ $title = 'Статья: ' . get_the_title();
388
+
389
+ //удаляем эмоджи (яндекс выдает на них ошибку)
390
+ $title = yturbo_remove_emoji($title);
391
+ //устанавливаем заголовком название сайта, если заголовок пустой
392
+ $title = yturbo_empty_title($title);
393
+ //преобразуем спец. символы в html-сущности
394
+ $title = esc_html($title);
395
+ //обрезаем заголовок по словам, чтобы не превышать ограничение в 240 символов
396
+ $title = yturbo_cut_by_words(237, $title);
397
+
398
+ return $title;
399
+ }
400
+ add_filter( 'yturbo_custom_title', 'my_custom_title_for_turbo' );`
401
+
402
+ В этом случае будут выполнены все требования Яндекса к заголовкам записей.
403
+
404
  == Screenshots ==
405
 
406
  1. Пример добавленных RSS-лент в Яндекс.Вебмастере.
409
 
410
  == Changelog ==
411
 
412
+ = 1.26 =
413
+
414
+ * изменен интерфейс удаления шорткодов из контента турбо-страниц.
415
+ * удалена опция вывода заголовков из SEO-плагинов (Яндекс стал требовать соответствия заголовков).
416
+ * обновлены регулярки удаления эмоджи из заголовков записей.
417
+ * добавлена поддержка mp3 файлов (будет выведен аудио-проигрыватель).
418
+ * метабокс плагина больше не выводится для записей исключенных таксономий.
419
+ * исправлено сохранение заголовка и описания ленты (можно использовать кавычки).
420
+ * произвольные поля плагина скрыты из метабокса "Произвольные поля".
421
+ * переделано отображение ссылок на разбитые RSS-ленты (можно увидеть ссылки на все ленты).
422
+ * исправлены ссылки на документацию (Яндекс опять их изменил).
423
+
424
  = 1.25 =
425
 
426
  * для использования в шаблонах добавлены шорткоды [yt-permalink], [yt-title].
442
  * заголовки записей обрезаются до 240 символов (ограничение Яндекса).
443
  * при незаполненном заголовке у записей будет выводиться заголовок сайта.
444
  * снова удаляются unicode-символы из контента (Яндекс опять перестал их понимать).
445
+ * в настройках плагина можно скрыть рекламные блоки.
446
  * исправлен css на предмет совместимости с WordPress 5.3.
447
  * при отключении турбо-страниц можно выбрать используемый протокол.
448
  * изменен формат даты записей - теперь он учитывает часовой пояс.
454
  * исправлена ошибка с видео, вставленным в гутенберге.
455
  * в контенте записей теперь выполняются гутенберг-блоки.
456
  * исправлена ошибка с неработающим поиском.
457
+ * в похожих записях теперь выводятся записи только из той же под-рубрики.
458
 
459
  = 1.22 =
460
 
461
+ * исправлены заголовки SEO-плагинов для произвольных типов записей.
462
  * исправлен notice по поводу "Undefined index: template-post" в метабоксе при редактировании записи.
463
  * для mp4-видео теперь выводится картинка-заглушка (Яндекс без нее отказывается выводить видео).
464
  * исправлены регулярки, обрабатывающие изображения с подписью (WordPress изменил формат их вывода).
515
 
516
  = 1.15 =
517
  * исправлен баг с сохранением в блоке обратной связи звонка и контактной формы.
518
+ * интегрирован ID плагина (https://yandex.ru/support/webmaster/turbo/plugins.html).
519
 
520
  = 1.14 =
521
 
523
  * добавлена возможность удалять указанные шорткоды из контента записей в RSS-ленте.
524
  * удален выбор тематики записи (по спецификации Яндекса тематика используется только в Дзене и Новостях).
525
  * обновлены часто задаваемые вопросы (добавлены подсказки по использованию кнопок и формы обратной связи).
526
+ * добавлена возможность задавать заголовок записей (тег &lt;h1>) в RSS-ленте из SEO-плагинов.
527
  * некоторые настройки плагина перенесены в другие секции настроек (для более удобной настройки плагина).
528
  * отключен вывод миниатюр для похожих записей при включении непрерывной ленты статей (так как они все равно не используются в этом случае).
529
  * добавлено ограничение на количество похожих записей (по спецификации их не может быть больше 30 штук).
568
  = 1.06 =
569
  * добавлена опция отключения вывода автора записи (тег &lt;author> для Яндекс.Турбо не является обязательным).
570
  * из контента записей теперь удаляются все спец. символы юникода (как невалидные в rss).
571
+ * полностью переписаны регулярки плагина - из тегов img теперь вырезаются все лишние атрибуты.
572
 
573
  = 1.05 =
574
  * я дико извиняюсь за столь частые обновления плагина!
580
  * удален action "rss2_item" (во избежание добавления в ленту левых тегов от плагинов вроде Jetpack).
581
  * при удалении плагина настройки плагина теперь будут полностью удалены из базы данных.
582
  * при деактивации плагина RSS-ленты плагина теперь будут выдавать обычную 404-ошибку.
583
+ * исправлены тормоза в админке, если установлено слишком большое общее количество записей в RSS-ленте.
584
 
585
  = 1.03 =
586
  * добавлен третий рекламный блок и возможность выводить рекламу в середине записи.
594
  = 1.02 =
595
  * добавлена возможность изменения имени ленты в урле.
596
  * функция wpautop теперь обрабатывает контент после удаления тегов, а не до.
597
+ * переписана функция удаления тегов без контента (теперь она справляется с большой вложенностью).
598
 
599
  = 1.01 =
600
+ * миниатюра в заголовке записи теперь выводится только, если включена соответствующая опция в настройках (проверьте настройки!).
601
  * из разметки изображений убраны атрибуты srcset и sizes.
602
  * исправлена ошибка парсинга изображений (когда пропадал весь текст записи).
603
 
rss-for-yandex-turbo.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: RSS for Yandex Turbo
4
  Plugin URI: https://wordpress.org/plugins/rss-for-yandex-turbo/
5
  Description: Создание RSS-ленты для сервиса Яндекс.Турбо.
6
- Version: 1.25
7
  Author: Flector
8
  Author URI: https://profiles.wordpress.org/flector#content-plugins
9
  Text Domain: rss-for-yandex-turbo
@@ -13,7 +13,7 @@ Text Domain: rss-for-yandex-turbo
13
  function yturbo_check_version() {
14
  $yturbo_options = get_option('yturbo_options');
15
  if (!isset($yturbo_options['version'])){$yturbo_options['version']='1.00';update_option('yturbo_options',$yturbo_options);}
16
- if ( $yturbo_options['version'] != '1.25' ) {
17
  yturbo_set_new_options();
18
  }
19
  }
@@ -90,10 +90,8 @@ function yturbo_set_new_options() {
90
  if (!isset($yturbo_options['ytfeedbackviber'])) {$yturbo_options['ytfeedbackviber']='';}
91
  if (!isset($yturbo_options['ytfeedbackwhatsapp'])) {$yturbo_options['ytfeedbackwhatsapp']='';}
92
  if (!isset($yturbo_options['ytfeedbacktelegram'])) {$yturbo_options['ytfeedbacktelegram']='';}
93
- if (!isset($yturbo_options['ytseotitle'])) {$yturbo_options['ytseotitle']='disabled';}
94
- if (!isset($yturbo_options['ytseoplugin'])) {$yturbo_options['ytseoplugin']='Yoast SEO';}
95
  if (!isset($yturbo_options['ytexcludeshortcodes'])) {$yturbo_options['ytexcludeshortcodes']='disabled';}
96
- if (!isset($yturbo_options['ytexcludeshortcodeslist'])) {$yturbo_options['ytexcludeshortcodeslist']='contact-form-7';}
97
  if (!isset($yturbo_options['yttab'])) {$yturbo_options['yttab']='RSS-лента';}
98
  if (!isset($yturbo_options['ytrating'])) {$yturbo_options['ytrating']='disabled';}
99
  if (!isset($yturbo_options['ytratingmin'])) {$yturbo_options['ytratingmin']='4.70';}
@@ -126,10 +124,11 @@ function yturbo_set_new_options() {
126
 
127
  if (!isset($yturbo_options['ytrelateddate'])) {$yturbo_options['ytrelateddate']='12';}
128
 
129
- $yturbo_options['yttitle'] = yturbo_remove_emoji(strip_tags($yturbo_options['yttitle']));
130
- $yturbo_options['ytdescription'] = yturbo_remove_emoji(strip_tags($yturbo_options['ytdescription']));
 
131
 
132
- $yturbo_options['version'] = '1.25';
133
  update_option('yturbo_options', $yturbo_options);
134
  }
135
  //функция установки новых опций при обновлении плагина у пользователей end
@@ -137,11 +136,11 @@ function yturbo_set_new_options() {
137
  //функция установки значений по умолчанию при активации плагина begin
138
  function yturbo_init() {
139
  $yturbo_options = array();
140
- $yturbo_options['version'] = '1.25';
141
  $yturbo_options['ytrssname'] = 'turbo';
142
- $yturbo_options['yttitle'] = yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title')));
143
  $yturbo_options['ytlink'] = get_bloginfo_rss('url');
144
- $yturbo_options['ytdescription'] = yturbo_remove_emoji(strip_tags(get_bloginfo_rss('description')));
145
  $yturbo_options['ytlanguage'] = 'ru';
146
  $yturbo_options['ytnumber'] = '250';
147
  $yturbo_options['yttype'] = 'post';
@@ -236,11 +235,8 @@ function yturbo_init() {
236
  $yturbo_options['ytfeedbackwhatsapp'] = '';
237
  $yturbo_options['ytfeedbacktelegram'] = '';
238
 
239
- $yturbo_options['ytseotitle'] = 'disabled';
240
- $yturbo_options['ytseoplugin'] = 'Yoast SEO';
241
-
242
  $yturbo_options['ytexcludeshortcodes'] = 'disabled';
243
- $yturbo_options['ytexcludeshortcodeslist'] = 'contact-form-7';
244
  $yturbo_options['yttab'] = 'RSS-лента';
245
 
246
  $yturbo_options['ytrating'] = 'disabled';
@@ -268,6 +264,8 @@ function yturbo_init() {
268
  $yturbo_options['ytturbocolumn'] = 'enabled';
269
  $yturbo_options['ytrelateddate'] = '12';
270
 
 
 
271
  add_option('yturbo_options', $yturbo_options);
272
 
273
  yturbo_add_feed();
@@ -326,9 +324,9 @@ function yturbo_files_admin( $hook_suffix ) {
326
  wp_enqueue_script('yturbo-textillate');
327
  wp_register_style('yturbo-animate', $purl . '/inc/animate.min.css');
328
  wp_enqueue_style('yturbo-animate');
329
- wp_register_script('yturbo-script', $purl . '/inc/yturbo-script.js', array(), '1.25');
330
  wp_enqueue_script('yturbo-script');
331
- wp_register_style('yturbo-css', $purl . '/inc/yturbo-css.css', array(), '1.25');
332
  wp_enqueue_style('yturbo-css');
333
  }
334
  }
@@ -358,9 +356,9 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
358
  $wp_rewrite->flush_rules();
359
  }
360
 
361
- $yturbo_options['yttitle'] = sanitize_text_field(yturbo_remove_emoji(strip_tags($_POST['yttitle'])));
362
  $yturbo_options['ytlink'] = esc_url_raw($_POST['ytlink']);
363
- $yturbo_options['ytdescription'] = sanitize_text_field(yturbo_remove_emoji(strip_tags($_POST['ytdescription'])));
364
  $yturbo_options['ytlanguage'] = sanitize_text_field($_POST['ytlanguage']);
365
 
366
  $ytnumber = sanitize_text_field($_POST['ytnumber']);
@@ -448,6 +446,13 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
448
  if($yturbo_options['ytad5set'] == "РСЯ" && !$yturbo_options['ytad5rsa']) {$yturbo_options['ytad5'] = 'disabled';}
449
  if($yturbo_options['ytad5set'] == "ADFOX" && !$yturbo_options['ytadfox5']) {$yturbo_options['ytad5'] = 'disabled';}
450
  }
 
 
 
 
 
 
 
451
 
452
  if(isset($_POST['ytrelated'])){$yturbo_options['ytrelated'] = sanitize_text_field($_POST['ytrelated']);}else{$yturbo_options['ytrelated'] = 'disabled';}
453
  $ytrelatednumber = sanitize_text_field($_POST['ytrelatednumber']);
@@ -516,13 +521,10 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
516
  $yturbo_options['ytfeedbackwhatsapp'] = sanitize_text_field($_POST['ytfeedbackwhatsapp']);
517
  $yturbo_options['ytfeedbacktelegram'] = sanitize_text_field($_POST['ytfeedbacktelegram']);
518
 
519
- if(isset($_POST['ytseotitle'])){$yturbo_options['ytseotitle'] = sanitize_text_field($_POST['ytseotitle']);}else{$yturbo_options['ytseotitle'] = 'disabled';}
520
- $yturbo_options['ytseoplugin'] = sanitize_text_field($_POST['ytseoplugin']);
521
-
522
  if(isset($_POST['ytexcludeshortcodes'])){$yturbo_options['ytexcludeshortcodes'] = sanitize_text_field($_POST['ytexcludeshortcodes']);}else{$yturbo_options['ytexcludeshortcodes'] = 'disabled';}
523
- $ytexcludeshortcodeslist = preg_replace('/\s+/', '', $_POST['ytexcludeshortcodeslist']);
524
- $ytexcludeshortcodeslist = str_replace(array('[', ']', '"', '\'', '='), '', $ytexcludeshortcodeslist);
525
- $yturbo_options['ytexcludeshortcodeslist'] = esc_textarea($ytexcludeshortcodeslist);
526
 
527
  $types = explode(",", $yturbo_options['yttype']);
528
  $types = array_diff($types, array(''));
@@ -545,7 +547,7 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
545
  $yturbo_options['ytsearchmesto'] = sanitize_text_field($_POST['ytsearchmesto']);
546
 
547
  if(isset($_POST['yttoc'])){$yturbo_options['yttoc'] = sanitize_text_field($_POST['yttoc']);}else{$yturbo_options['yttoc'] = 'disabled';}
548
- $yturbo_options['yttype2'] = '';
549
  $checkboxes = isset($_POST['types2']) ? $_POST['types2'] : array();
550
  foreach($checkboxes as $value) {$yturbo_options['yttype2'] .= $value . ',';}
551
  $yturbo_options['yttype2'] = sanitize_text_field($yturbo_options['yttype2']);
@@ -634,16 +636,16 @@ if (closedonat == 'yes') {
634
  </ul>
635
 
636
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='RSS-лента'){echo ' active';} ?>"><!-- begin tab -->
637
- <table class="form-table">
638
 
639
  <?php yturbo_count_feeds(); ?>
640
 
641
- <?php if ( get_option('permalink_structure') ) {
642
  $kor = get_bloginfo('url') .'/feed/' . '<strong>' . $yturbo_options['ytrssname'] . '</strong>/';
643
- } else {
644
  $kor = get_bloginfo('url') .'/?feed=' . '<strong>' . $yturbo_options['ytrssname']. '</strong>';
645
- } ?>
646
 
 
647
  <tr class="trbordertop">
648
  <th><?php _e('Имя RSS-ленты:', 'rss-for-yandex-turbo'); ?></th>
649
  <td>
@@ -687,7 +689,8 @@ if (closedonat == 'yes') {
687
  <th><?php _e('Количество записей:', 'rss-for-yandex-turbo'); ?></th>
688
  <td>
689
  <input style="max-width: 74px;" name="ytnumber" type="number" min="1" max="999999" step="1" value="<?php echo $yturbo_options['ytnumber']; ?>" />
690
- <br /><small><?php _e('Общее количество записей в RSS-ленте (обязательно прочтите про <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/quota-docpage/">ограничения</a> Яндекса).', 'rss-for-yandex-turbo'); ?> <br />
 
691
  </small>
692
  </td>
693
  </tr>
@@ -696,20 +699,15 @@ if (closedonat == 'yes') {
696
  <td>
697
  <label for="ytrazb"><input type="checkbox" value="enabled" name="ytrazb" id="ytrazb" <?php if ($yturbo_options['ytrazb'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить разбитие RSS-ленты', 'rss-for-yandex-turbo'); ?></label>
698
  <br /><small><?php _e('Плагин будет генерировать несколько RSS-лент с указанным числом записей в каждой.', 'rss-for-yandex-turbo'); ?> <br />
699
- <?php _e('Включите эту опцию, если RSS-лента слишком долго генерируется или если она превышает <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/quota-docpage/">ограничения</a>, установленные Яндексом.', 'rss-for-yandex-turbo'); ?><br />
700
- <?php _e('Внимание! Не обязательно держать в Яндекс.Вебмастере максимальное количество лент (одновременно там может присутствовать <strong>10</strong> лент).', 'rss-for-yandex-turbo'); ?> <br />
701
- <?php _e('Достаточно единоразово "скормить" Яндексу максимальное количество лент, а потом их можно безбоязненно удалить (турбо-страницы при этом удалены не будут).', 'rss-for-yandex-turbo'); ?> <br />
702
- <?php _e('Таким образом можно обойти ограничение Яндекса на 10000 турбо-страниц (10 RSS-лент по 1000 записей в каждой).', 'rss-for-yandex-turbo'); ?> <br />
703
- <?php _e('В идеале у вас должна остаться в Яндекс.Вебмастере только одна RSS-лента с 20-30 последними записями сайта и все.', 'rss-for-yandex-turbo'); ?> <br />
704
- <?php _e('Однако помните, что при добавлении новых "турбо-фич" вам надо будет заново "скормить" Яндексу максимальное количество RSS-лент.', 'rss-for-yandex-turbo'); ?> <br />
705
- <?php _e('И последнее - общее количество картинок в ленте не может превышать 5000 штук (при ленте в 1000 записей это по 5 картинок на запись).', 'rss-for-yandex-turbo'); ?> <br />
706
  </small>
707
  </td>
708
  </tr>
709
  <tr class="ytrazbnumbertr" <?php if ($yturbo_options['ytrazb'] == 'disabled') echo 'style="display:none;"'; ?>>
710
  <th><?php _e('Делить RSS-ленту по:', 'rss-for-yandex-turbo'); ?></th>
711
  <td>
712
- <input style="max-width: 60px;" name="ytrazbnumber" type="number" min="1" max="999999" step="1" value="<?php echo $yturbo_options['ytrazbnumber']; ?>" />
713
  <br /><small><?php _e('Укажите число записей, по которому лента будет делиться.', 'rss-for-yandex-turbo'); ?><br />
714
  <?php _e('Для получения ссылок на ваши RSS-ленты сохраните настройки плагина.', 'rss-for-yandex-turbo'); ?><br />
715
  <?php _e('Важно: разбитие не будет работать, если на вашем сайте нет необходимого числа записей.', 'rss-for-yandex-turbo'); ?> <br />
@@ -752,13 +750,13 @@ if (closedonat == 'yes') {
752
  </div><!-- end tab -->
753
 
754
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Оформление'){echo ' active';} ?>"><!-- begin tab -->
755
- <table class="form-table">
756
 
757
- <p><?php _e('В этом разделе собраны настройки, касающиеся оформления контента на турбо-страницах.', 'rss-for-yandex-turbo'); ?><br />
758
- <?php _e('Отключите вывод миниатюр, если они не выводятся в вашей теме на страницах одиночных записей,', 'rss-for-yandex-turbo'); ?><br />
759
- <?php _e('так как Яндексу не нравится, когда турбо-страница не соответствует оригинальной версии.', 'rss-for-yandex-turbo'); ?><br />
760
- </p>
761
 
 
762
  <tr class="trbordertop">
763
  <th class="tdcheckbox"><?php _e('Дата записей:', 'rss-for-yandex-turbo'); ?></th>
764
  <td>
@@ -788,25 +786,6 @@ if (closedonat == 'yes') {
788
  </small>
789
  </td>
790
  </tr>
791
- <tr class="ytseotitletr trbordertop">
792
- <th class="tdcheckbox"><?php _e('Заголовок записей:', 'rss-for-yandex-turbo'); ?></th>
793
- <td>
794
- <label for="ytseotitle"><input type="checkbox" value="enabled" name="ytseotitle" id="ytseotitle" <?php if ($yturbo_options['ytseotitle'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Использовать данные из SEO-плагинов', 'rss-for-yandex-turbo'); ?></label>
795
- <br /><small><?php _e('В качестве заголовка записи (тег <tt>&lt;h1&gt;</tt>) будет использован заголовок записи из выбранного SEO-плагина.', 'rss-for-yandex-turbo'); ?><br />
796
- <?php _e('Эта опция меняет только видимый пользователями тег <tt>&lt;h1&gt;</tt> и не затрагивает RSS-теги <tt>&lt;title&gt;</tt> и <tt>&lt;turbo:topic&gt;</tt>.', 'rss-for-yandex-turbo'); ?><br />
797
- </small>
798
- </td>
799
- </tr>
800
- <tr class="ytseoplugintr" <?php if ($yturbo_options['ytseotitle'] == 'disabled') echo 'style="display:none;"'; ?>>
801
- <th><?php _e('SEO-плагин:', 'rss-for-yandex-turbo'); ?></th>
802
- <td>
803
- <select name="ytseoplugin" style="width: 260px;">
804
- <option value="Yoast SEO" <?php if ($yturbo_options['ytseoplugin'] == 'Yoast SEO') echo 'selected="selected"'; ?>><?php _e('Yoast SEO', 'rss-for-yandex-turbo'); ?></option>
805
- <option value="All in One SEO Pack" <?php if ($yturbo_options['ytseoplugin'] == 'All in One SEO Pack') echo 'selected="selected"'; ?>><?php _e('All in One SEO Pack', 'rss-for-yandex-turbo'); ?></option>
806
- </select>
807
- <br /><small><?php _e('Выберите используемый вами SEO-плагин.', 'rss-for-yandex-turbo'); ?> </small>
808
- </td>
809
- </tr>
810
  <tr class="ytthumbnailtr trbordertop">
811
  <th class="tdcheckbox"><?php _e('Миниатюра в RSS:', 'rss-for-yandex-turbo'); ?></th>
812
  <td>
@@ -824,7 +803,9 @@ if (closedonat == 'yes') {
824
  <option value="<?php echo $size_name ?>" <?php if ($yturbo_options['ytselectthumb'] == $size_name) echo 'selected="selected"'; ?>><?php echo $size_name ?></option>
825
  <?php endforeach; ?>
826
  </select>
827
- <br /><small><?php _e('Выберите нужный размер миниатюры (в списке находятся все зарегистрированные на сайте размеры миниатюр). ', 'rss-for-yandex-turbo'); ?> </small>
 
 
828
  </td>
829
  </tr>
830
  <tr class="trbordertop">
@@ -944,12 +925,12 @@ if (closedonat == 'yes') {
944
  </div><!-- end tab -->
945
 
946
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Блоки Яндекс.Турбо'){echo ' active';} ?>"><!-- begin tab -->
947
- <table class="form-table">
948
 
949
- <p><?php _e('Часть этих блоков вы можете настроить напрямую в Яндекс.Вебмастере.', 'rss-for-yandex-turbo'); ?><br />
950
- <?php _e('Указать логотип сайта можно только через Яндекс.Вебмастер.', 'rss-for-yandex-turbo'); ?><br />
951
- </p>
952
 
 
953
  <tr class="ytselectmenutr trbordertop">
954
  <th><?php _e('Меню:', 'rss-for-yandex-turbo'); ?></th>
955
  <td>
@@ -962,7 +943,8 @@ if (closedonat == 'yes') {
962
  </select>
963
  <?php $menulink = get_bloginfo('url') .'/wp-admin/nav-menus.php'; ?>
964
  <br /><small><?php _e('Выберите меню для использования на турбо-страницах (создать меню можно на вкладке ', 'rss-for-yandex-turbo'); ?> "<a target="_blank" href="<?php echo $menulink; ?>"><?php _e('Внешний вид \ Меню', 'rss-for-yandex-turbo'); ?></a>").<br />
965
- <?php _e('Меню должно быть ограничено <strong>10</strong> ссылками без иерархии (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/header-docpage/#menu">здесь</a>).', 'rss-for-yandex-turbo'); ?>
 
966
  </small>
967
  </td>
968
  </tr>
@@ -970,7 +952,7 @@ if (closedonat == 'yes') {
970
  <th class="tdcheckbox"><?php _e('Блок "Поделиться":', 'rss-for-yandex-turbo'); ?></th>
971
  <td>
972
  <label for="ytshare"><input type="checkbox" value="enabled" name="ytshare" id="ytshare" <?php if ($yturbo_options['ytshare'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок "Поделиться" на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
973
- <br /><small><?php _e('Этот блок будет добавлен в конце записи (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/share-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
974
  </small>
975
  </td>
976
  </tr>
@@ -1023,7 +1005,7 @@ if (closedonat == 'yes') {
1023
  <th class="tdcheckbox"><?php _e('Блок обратной связи:', 'rss-for-yandex-turbo'); ?></th>
1024
  <td>
1025
  <label for="ytfeedback"><input type="checkbox" value="enabled" name="ytfeedback" id="ytfeedback" <?php if ($yturbo_options['ytfeedback'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок обратной связи на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1026
- <br /><small><?php _e('На турбо-страницы будет добавлен блок обратной связи в выбранном вами месте (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/feedback-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1027
  </small>
1028
  </td>
1029
  </tr>
@@ -1257,7 +1239,7 @@ if (closedonat == 'yes') {
1257
  <th class="tdcheckbox"><?php _e('Комментарии:', 'rss-for-yandex-turbo'); ?></th>
1258
  <td>
1259
  <label for="ytcomments"><input type="checkbox" value="enabled" name="ytcomments" id="ytcomments" <?php if ($yturbo_options['ytcomments'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить комментарии к турбо-страницам', 'rss-for-yandex-turbo'); ?></label>
1260
- <br /><small><?php _e('К записям на турбо-страницах будут добавлены комментарии (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/comments-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1261
  </small>
1262
  </td>
1263
  </tr>
@@ -1313,7 +1295,7 @@ if (closedonat == 'yes') {
1313
  <th class="tdcheckbox"><?php _e('Похожие записи:', 'rss-for-yandex-turbo'); ?></th>
1314
  <td>
1315
  <label for="ytrelated"><input type="checkbox" value="enabled" name="ytrelated" id="ytrelated" <?php if ($yturbo_options['ytrelated'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок похожих записей на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1316
- <br /><small><?php _e('На турбо-страницы будет добавлен блок похожих записей (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/markup-docpage/#item__related-simple">здесь</a>).', 'rss-for-yandex-turbo'); ?></small>
1317
  </td>
1318
  </tr>
1319
  <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
@@ -1359,7 +1341,7 @@ if (closedonat == 'yes') {
1359
  <th class="tdcheckbox"><?php _e('Непрерывная лента статей:', 'rss-for-yandex-turbo'); ?></th>
1360
  <td>
1361
  <label for="ytrelatedinfinity"><input type="checkbox" value="enabled" name="ytrelatedinfinity" id="ytrelatedinfinity" <?php if ($yturbo_options['ytrelatedinfinity'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить непрерывную ленту статей', 'rss-for-yandex-turbo'); ?></label>
1362
- <br /><small><?php _e('Вместо обычного короткого списка похожих статей будет выводиться непрерывная лента из полных записей (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/markup-docpage/#item__infinity">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1363
  <?php _e('При включении непрерывной ленты статей вывод миниатюр для похожих записей будет отключен.', 'rss-for-yandex-turbo'); ?><br />
1364
  </small>
1365
  </td>
@@ -1383,7 +1365,7 @@ if (closedonat == 'yes') {
1383
  <th class="tdcheckbox"><?php _e('Рейтинг:', 'rss-for-yandex-turbo'); ?></th>
1384
  <td>
1385
  <label for="ytrating"><input type="checkbox" value="enabled" name="ytrating" id="ytrating" <?php if ($yturbo_options['ytrating'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить рейтинг на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1386
- <br /><small><?php _e('На турбо-страницы будет добавлен блок рейтинга (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/rating-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?></small>
1387
  </td>
1388
  </tr>
1389
  <tr class="ytratingchildtr" <?php if ($yturbo_options['ytrating'] == 'disabled') echo 'style="display:none;"'; ?>>
@@ -1400,7 +1382,7 @@ if (closedonat == 'yes') {
1400
  <th class="tdcheckbox"><?php _e('Поиск:', 'rss-for-yandex-turbo'); ?></th>
1401
  <td>
1402
  <label for="ytsearch"><input type="checkbox" value="enabled" name="ytsearch" id="ytsearch" <?php if ($yturbo_options['ytsearch'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить поиск на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1403
- <br /><small><?php _e('На турбо-страницы будет добавлен блок поиска (пример смотреть <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/search-block-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1404
  <?php _e('На данный момент поиск не будет работать, если ваш сайт работает не на https протоколе.', 'rss-for-yandex-turbo'); ?>
1405
  </small>
1406
  </td>
@@ -1435,10 +1417,10 @@ if (closedonat == 'yes') {
1435
  </div><!-- end tab -->
1436
 
1437
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Счетчики'){echo ' active';} ?>"><!-- begin tab -->
1438
- <table class="form-table">
1439
 
1440
- <p><?php _e('Укажите идентификаторы нужных вам счетчиков (<a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/find-counter-id-docpage/">как узнать идентификатор счетчика</a>).<br />В ленте будут использованы <strong>все</strong> указанные вами счетчики.', 'rss-for-yandex-turbo'); ?></p>
1441
 
 
1442
  <tr class="trbordertop">
1443
  <th><?php _e('Яндекс.Метрика:', 'rss-for-yandex-turbo'); ?></th>
1444
  <td>
@@ -1494,14 +1476,15 @@ if (closedonat == 'yes') {
1494
  </div><!-- end tab -->
1495
 
1496
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Реклама'){echo ' active';} ?>"><!-- begin tab -->
1497
- <table class="form-table">
1498
 
1499
- <p><?php _e('Реклама, установленная в Яндекс.Вебмастере, распределяется равномерно по тексту страницы (примерно через каждые 250 слов).', 'rss-for-yandex-turbo'); ?><br />
1500
- <?php _e('Если у вас большие по размеру контента статьи, то имеет смысл использовать равномерное распределение рекламы от Яндекса.', 'rss-for-yandex-turbo'); ?><br />
1501
- <?php _e('В противном же случае, рекламные блоки лучше установить через плагин (будет выведено минимум 3 рекламных блока).', 'rss-for-yandex-turbo'); ?><br />
1502
- <?php _e('При проблемах с настройкой рекламной сети ADFOX ознакомьтесь со справочными материалами: <a target="_blank" href="https://sites.help.adfox.ru/page/225">статья</a>, <a target="_blank" href="https://webmaster.yandex.ru/blog/videourok-kak-razmeschat-reklamu-na-turbo-stranitsakh-cherez-adfox">видеоурок</a>.', 'rss-for-yandex-turbo'); ?><br />
1503
- </p>
 
1504
 
 
1505
  <tr class="myturbo trbordertop">
1506
  <th class="tdcheckbox"><?php _e('Блок рекламы #1:', 'rss-for-yandex-turbo'); ?></th>
1507
  <td>
@@ -1679,15 +1662,22 @@ if (closedonat == 'yes') {
1679
  </tr>
1680
 
1681
  </table>
 
 
 
 
 
 
 
1682
  </div><!-- end tab -->
1683
 
1684
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Типы записей и исключения'){echo ' active';} ?>"><!-- begin tab -->
1685
- <table class="form-table">
1686
 
1687
- <p><?php _e('Если у вас магазин на WordPress, то не включайте тип "Товары", а используйте <a target="_blank" href="https://webmaster.yandex.ru/blog/internet-magaziny-v-turbo">плагин генерации YML</a>.', 'rss-for-yandex-turbo'); ?><br />
1688
- <?php _e('Будьте внимательны при настройке таксономий для включения или исключения из RSS-ленты.', 'rss-for-yandex-turbo'); ?><br />
1689
- </p>
1690
 
 
1691
  <tr class="trbordertop">
1692
  <th class="tdcheckbox"><?php _e('Типы записей:', 'rss-for-yandex-turbo'); ?></th>
1693
  <td>
@@ -1840,7 +1830,7 @@ if (closedonat == 'yes') {
1840
  'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
1841
  'toolbar2' => '',
1842
  'toolbar3' => '',
1843
- 'content_css' => $purl . '/inc/editor.css?ver=1.25'
1844
  ),
1845
  'quicktags' => array(
1846
  'id' => $editor_id,
@@ -1867,10 +1857,10 @@ if (closedonat == 'yes') {
1867
  </div><!-- end tab -->
1868
 
1869
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Фильтры'){echo ' active';} ?>"><!-- begin tab -->
1870
- <table class="form-table">
1871
 
1872
  <p><?php _e('В данной секции находятся продвинутые настройки. <br />Пожалуйста, будьте внимательны в этом разделе!', 'rss-for-yandex-turbo'); ?> </p>
1873
 
 
1874
  <tr class="ytexcludeshortcodestr trbordertop">
1875
  <th class="tdcheckbox"><?php _e('Фильтр шорткодов:', 'rss-for-yandex-turbo'); ?></th>
1876
  <td>
@@ -1879,11 +1869,26 @@ if (closedonat == 'yes') {
1879
  </td>
1880
  </tr>
1881
  <tr class="ytexcludeshortcodeslisttr" <?php if ($yturbo_options['ytexcludeshortcodes'] == 'disabled') echo 'style="display:none;"'; ?>>
1882
- <th><?php _e('Шорткоды для удаления:', 'rss-for-yandex-turbo'); ?></th>
1883
- <td>
1884
- <textarea rows="4" cols="70" name="ytexcludeshortcodeslist" id="ytexcludeshortcodeslist"><?php echo stripslashes($yturbo_options['ytexcludeshortcodeslist']); ?></textarea>
1885
- <br /><small><?php _e('Список удаляемых шорткодов через запятую (пример: <tt>spoiler,caption</tt>).', 'rss-for-yandex-turbo'); ?><br />
1886
- <?php _e('Указывать параметры шорткодов (включая квадратные скобки) нельзя.', 'rss-for-yandex-turbo'); ?><br />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1887
  </small>
1888
  </td>
1889
  </tr>
@@ -2000,7 +2005,40 @@ function yturbo_meta_box() {
2000
  $yttype = $yturbo_options['yttype'];
2001
  $yttype = explode(",", $yttype);
2002
  $yttype = array_diff($yttype, array(''));
2003
- add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2004
  }
2005
  add_action( 'add_meta_boxes', 'yturbo_meta_box' );
2006
  //создаем метабокс end
@@ -2203,7 +2241,7 @@ tt{padding: 1px 5px 1px;margin: 0 1px;background: #eaeaea;background: rgba(0, 0,
2203
  'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
2204
  'toolbar2' => '',
2205
  'toolbar3' => '',
2206
- 'content_css' => $purl . '/inc/editor.css?ver=1.25'
2207
  ),
2208
  'quicktags' => array(
2209
  'id' => 'customtemplate',
@@ -2256,6 +2294,14 @@ $ytauthor = $yturbo_options['ytauthor'];
2256
  $ytthumbnail = $yturbo_options['ytthumbnail'];
2257
  $ytselectthumb = $yturbo_options['ytselectthumb'];
2258
 
 
 
 
 
 
 
 
 
2259
  $ytad1 = $yturbo_options['ytad1'];
2260
  $ytad1set = $yturbo_options['ytad1set'];
2261
  $ytad1rsa = $yturbo_options['ytad1rsa'];
@@ -2323,8 +2369,6 @@ if ($ytcommentsdrevo=='enabled') {
2323
  $ytcommentsdrevo = 1;
2324
  }
2325
  $ytpostdate = $yturbo_options['ytpostdate'];
2326
- $ytseotitle = $yturbo_options['ytseotitle'];
2327
- $ytseoplugin = $yturbo_options['ytseoplugin'];
2328
 
2329
  $ytrating = $yturbo_options['ytrating'];
2330
  $ytratingmin = $yturbo_options['ytratingmin'];
@@ -2398,9 +2442,9 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2398
  version="2.0">
2399
  <channel>
2400
  <turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
2401
- <title><?php echo esc_html($yttitle); ?></title>
2402
  <link><?php echo esc_html($ytlink); ?></link>
2403
- <description><?php echo esc_html($ytdescription); ?></description>
2404
  <?php if ($ytmetrika) { ?><turbo:analytics id="<?php echo $ytmetrika; ?>" type="Yandex"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2405
  <?php if ($ytliveinternet) { ?><turbo:analytics type="LiveInternet"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2406
  <?php if ($ytgoogle) { ?><turbo:analytics id="<?php echo $ytgoogle; ?>" type="Google"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
@@ -2409,7 +2453,8 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2409
  <?php if ($ytmediascope) { ?><turbo:analytics id="<?php echo $ytmediascope; ?>" type="Mediascope"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2410
  <?php do_action( 'yturbo_ads_header' ); echo yturbo_turbo_ads(); ?>
2411
  <language><?php echo $ytlanguage; ?></language>
2412
- <generator>RSS for Yandex Turbo v1.25 (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
 
2413
  <?php while($query->have_posts()) : $query->the_post(); ?>
2414
  <?php $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true); ?>
2415
  <?php if ($ytremoveturbo != 'enabled' && $ytremove != 'yes') { ?>
@@ -2417,11 +2462,11 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2417
  <?php } else { ?>
2418
  <item turbo="false">
2419
  <?php } ?>
2420
- <title><?php echo yturbo_cut_by_words(237, esc_html(yturbo_empty_title(get_the_title_rss()))); ?></title>
2421
  <link><?php the_permalink_rss(); ?></link>
2422
- <turbo:topic><?php echo yturbo_cut_by_words(237, esc_html(yturbo_empty_title(get_the_title_rss()))); ?></turbo:topic>
2423
  <turbo:source><?php the_permalink_rss(); ?></turbo:source>
2424
- <?php if ($ytpostdate == 'enabled') { ?>
2425
  <?php $gmt_offset = get_option('gmt_offset');
2426
  $gmt_offset_abs = floor(abs($gmt_offset));
2427
  $gmt_offset_str = ($gmt_offset_abs > 9) ? $gmt_offset_abs.'00' : ('0'.$gmt_offset_abs.'00');
@@ -2432,7 +2477,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2432
  <?php if ($yturbo_options['ytdateformat'] == 'mod') { ?>
2433
  <pubDate><?php echo mysql2date('D, d M Y H:i:s '.$gmt_offset_str, get_date_from_gmt(get_post_modified_time('Y-m-d H:i:s', true)), false); ?></pubDate>
2434
  <?php } ?>
2435
- <?php } ?>
2436
  <?php if ($ytauthorselect != 'Отключить указание автора') { ?>
2437
  <?php if ($ytauthor && $ytauthorselect != 'Автор записи') {
2438
  echo '<author>'.$ytauthor.'</author>'.PHP_EOL;
@@ -2545,6 +2590,17 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2545
  $replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2546
  $content = preg_replace($pattern, $replacement, $content);
2547
 
 
 
 
 
 
 
 
 
 
 
 
2548
  //удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
2549
  if (preg_match_all("/<figure><img(.*?)>(.*?)<\/figure>/i", $content, $res)) {
2550
  $i = 0;
@@ -2581,58 +2637,9 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2581
  ?>
2582
  <header>
2583
  <?php if ( $ytthumbnail=='enabled' && has_post_thumbnail(get_the_ID()) ) {
2584
- echo '<figure><img src="'. strtok(get_the_post_thumbnail_url(get_the_ID(),$ytselectthumb), '?') .'" /></figure>'.PHP_EOL;} ?>
2585
- <?php
2586
- if ($ytseotitle != 'disabled') {
2587
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
2588
- $temp = '';
2589
- if ($ytseoplugin == 'Yoast SEO') {
2590
- if ( is_plugin_active( 'wordpress-seo/wp-seo.php' ) ) {
2591
- $temp = get_post_meta(get_the_ID(), '_yoast_wpseo_title', true);
2592
- $temp = str_replace(array('%%title%%','%%sitename%%','%%sep%%','%%page%%'),array(get_the_title_rss(),$yttitle,'-',''), $temp);
2593
- $temp = str_replace(' ',' ', $temp);
2594
- if (!$temp) {
2595
- $wpseo_titles = get_option('wpseo_titles');
2596
- $sep_options = WPSEO_Option_Titles::get_instance()->get_separator_options();
2597
- if (isset($wpseo_titles['separator']) && isset($sep_options[$wpseo_titles['separator']])) {
2598
- $sep = $sep_options[$wpseo_titles['separator']];
2599
- } else {
2600
- $sep = '-';
2601
- }
2602
- $temp = str_replace(array('%%title%%','%%sitename%%','%%sep%%','%%page%%'),array(get_the_title_rss(),$yttitle,$sep,''), $wpseo_titles['title-'.get_post_type( get_the_ID() )]);
2603
- }
2604
- } else {
2605
- $temp = yturbo_empty_title(get_the_title_rss());
2606
- }
2607
- if (!$temp) {$temp = yturbo_empty_title(get_the_title_rss());}
2608
- $temp = apply_filters( 'convert_chars', $temp );
2609
- $temp = apply_filters( 'ent2ncr', $temp, 8 );
2610
- $temp = yturbo_remove_emoji($temp);
2611
- $temp = yturbo_cut_by_words(237, esc_html($temp));
2612
- echo "<h1>{$temp}</h1>".PHP_EOL;
2613
- }
2614
- if ($ytseoplugin == 'All in One SEO Pack') {
2615
- if ( is_plugin_active( 'all-in-one-seo-pack/all_in_one_seo_pack.php' ) ) {
2616
- $temp = get_post_meta(get_the_ID(), '_aioseop_title', true);
2617
- $temp = str_replace(array('%page_title%','%blog_title%','%post_title%'),array(get_the_title_rss(),$yttitle,get_the_title_rss()), $temp);
2618
- $temp = str_replace(' ',' ', $temp);
2619
- if (!$temp) {
2620
- global $aioseop_options;
2621
- $temp = str_replace(array('%page_title%','%blog_title%','%post_title%'),array(get_the_title_rss(),$yttitle,get_the_title_rss()), $aioseop_options['aiosp_'.get_post_type( get_the_ID() ).'_title_format']);
2622
- }
2623
- } else {
2624
- $temp = yturbo_empty_title(get_the_title_rss());
2625
- }
2626
- if (!$temp) {$temp = yturbo_empty_title(get_the_title_rss());}
2627
- $temp = apply_filters( 'convert_chars', $temp );
2628
- $temp = apply_filters( 'ent2ncr', $temp, 8 );
2629
- $temp = yturbo_remove_emoji($temp);
2630
- $temp = yturbo_cut_by_words(237, esc_html($temp));
2631
- echo "<h1>{$temp}</h1>".PHP_EOL;
2632
- }
2633
- } else { ?>
2634
- <h1><?php echo yturbo_cut_by_words(237, esc_html(yturbo_empty_title(get_the_title_rss()))); ?></h1>
2635
  <?php } ?>
 
2636
  <?php if ($ytselectmenu!='Не использовать') {
2637
  echo '<menu>'.PHP_EOL;
2638
  $menu = wp_get_nav_menu_object( $ytselectmenu );
@@ -2904,10 +2911,11 @@ if ($ytnumber > 500) :
2904
  if ($ytrazb == 'enabled') {
2905
  $paged = 2;
2906
  echo '<p>Вы установили слишком большое общее количество записей в RSS (больше 500 записей), <br />
2907
- поэтому чтобы не нагружать базу данных фактическая проверка существования разбитых RSS-лент <br />
2908
- не осуществлялась. Проверяйте наличие записей в RSS-лентах самостоятельно.</p>
2909
- <p>Всего у вас ' . yturbo_russian_number(ceil($ytnumber / $ytrazbnumber), array(' RSS-лента', ' RSS-ленты', ' RSS-лент')) . ' каждой по '.yturbo_russian_number($ytrazbnumber, array(' запись', ' записи', ' записей')). '):</p>';
2910
- echo '<ul>';
 
2911
  if ( get_option('permalink_structure') ) {
2912
  echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
2913
  } else {
@@ -2916,27 +2924,31 @@ if ( get_option('permalink_structure') ) {
2916
  while ($paged <= ceil($ytnumber / $ytrazbnumber) ) {
2917
 
2918
  if ( get_option('permalink_structure') ) {
2919
- echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'</a></li>';
2920
- } else {
2921
- echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$paged.'</a></li>';
2922
- }
2923
  $paged++;
2924
 
2925
- if ($paged == 13) {
2926
  echo '<li>....</li>';
2927
- echo '<p>Слишком много RSS-лент, остальные ленты были скрыты.</p>';
2928
- break;
2929
  }
2930
  }
 
 
 
2931
  echo '</ul>';
2932
  } else {
2933
- echo '<p>Всего у вас 1 RSS-лента ' . ' (в ней '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
2934
- echo '<ul>';
2935
- if ( get_option('permalink_structure') ) {
2936
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
2937
- } else {
2938
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
2939
- }
 
2940
  }
2941
  else :
2942
 
@@ -2949,7 +2961,8 @@ $query = new WP_Query( $args );
2949
  if ($query->post_count < $ytnumber) $ytnumber = $query->post_count;
2950
 
2951
  if ($ytrazb == 'enabled' && (ceil($query->post_count / $ytrazbnumber) > 1)) {
2952
- echo '<p>Всего у вас ' . yturbo_russian_number(ceil($query->post_count / $ytrazbnumber), array(' RSS-лента', ' RSS-ленты', ' RSS-лент')) . ' (в каждой по '.yturbo_russian_number($ytrazbnumber, array(' запись', ' записи', ' записей')). '):</p>';
 
2953
  } else {
2954
  echo '<p>Всего у вас 1 RSS-лента '. ' (в ней '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
2955
  }
@@ -2968,11 +2981,14 @@ if ($ytrazb == 'enabled' && (ceil($query->post_count / $ytrazbnumber) > 1)) {
2968
  } else {
2969
  echo '<li>'.$x.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'</a></li>';
2970
  }
2971
- if ($x == 12) {
2972
- echo '<li>....</li>';
2973
- echo '<p>Слишком много RSS-лент, остальные ленты были скрыты.</p>';
2974
- break;
 
2975
  }
 
 
2976
  }
2977
  }
2978
 
@@ -3398,7 +3414,8 @@ function yturbo_strip_shortcodes( $content ) {
3398
  global $shortcode_tags;
3399
  $stack = $shortcode_tags;
3400
 
3401
- $code = array_map('trim', explode(",", $yturbo_options['ytexcludeshortcodeslist']));
 
3402
 
3403
  $how_many = count($code);
3404
  for($i = 0; $i < $how_many; $i++){
@@ -3550,53 +3567,38 @@ add_filter( 'yturbo_add_contents', 'yturbo_toc' );
3550
 
3551
  //функция удаления эмоджи begin
3552
  function yturbo_remove_emoji( $text ) {
3553
- $clean_text = '';
3554
-
3555
- // Match Emoticons
3556
- $clean_text = preg_replace('/[\x{1F600}-\x{1F64F}]/u', '', $text);
3557
-
3558
- // Match Miscellaneous Symbols and Pictographs
3559
- $clean_text = preg_replace('/[\x{1F300}-\x{1F5FF}]/u', '', $clean_text);
3560
-
3561
- // Match Transport And Map Symbols
3562
- $clean_text = preg_replace('/[\x{1F680}-\x{1F6FF}]/u', '', $clean_text);
3563
-
3564
- // Match Miscellaneous Symbols
3565
- $clean_text = preg_replace('/[\x{2600}-\x{26FF}]/u', '', $clean_text);
3566
 
3567
- // Match Dingbats
3568
- $clean_text = preg_replace('/[\x{2700}-\x{27BF}]/u', '', $clean_text);
 
3569
 
3570
- // Match Flags
3571
- $clean_text = preg_replace('/[\x{1F1E6}-\x{1F1FF}]/u', '', $clean_text);
3572
-
3573
- // Others
3574
- $clean_text = preg_replace('/[\x{1F910}-\x{1F95E}]/u', '', $clean_text);
3575
-
3576
- $clean_text = preg_replace('/[\x{1F980}-\x{1F991}]/u', '', $clean_text);
3577
- $clean_text = preg_replace('/[\x{1F9C0}]/u', '', $clean_text);
3578
- $clean_text = preg_replace('/[\x{1F9F9}]/u', '', $clean_text);
3579
-
3580
- // Unicode
3581
- $clean_text = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/u', '', $clean_text);
3582
-
3583
- return $clean_text;
3584
  }
3585
  //функция удаления эмоджи end
3586
 
3587
- //удаляем эмоджи в заголовках записей begin
3588
  function yturbo_filter_title_rss( $title ) {
3589
  $yturbo_options = get_option('yturbo_options');
3590
 
 
3591
  if ( ! is_feed($yturbo_options['ytrssname']) )
3592
  return $title;
3593
 
 
3594
  $title = yturbo_remove_emoji($title);
 
 
 
 
 
 
 
 
3595
 
3596
  return $title;
3597
  }
3598
  add_filter( 'the_title_rss', 'yturbo_filter_title_rss' );
3599
- //удаляем эмоджи в заголовках записей end
3600
 
3601
  //функция обрезки текста по словам begin
3602
  function yturbo_cut_by_words( $maxlen, $text ) {
@@ -3622,8 +3624,8 @@ function yturbo_empty_title( $title ) {
3622
  //добавляем плагины в визуальный редактор begin
3623
  function yturbo_add_plugins_tinymce( $plugins ) {
3624
  $purl = plugins_url('', __FILE__);
3625
- $plugins['yablocks'] = $purl . '/inc/yablocks.js?ver=1.25';
3626
- $plugins['table'] = $purl . '/inc/table.js?ver=1.25';
3627
  return $plugins;
3628
  }
3629
  add_filter( 'mce_external_plugins', 'yturbo_add_plugins_tinymce' );
@@ -3755,4 +3757,36 @@ function yt_title_func( $atts ) {
3755
  return get_the_title_rss();
3756
  }
3757
  add_shortcode( 'yt-title', 'yt_title_func' );
3758
- //шорткод вывода заголовка записи end
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  Plugin Name: RSS for Yandex Turbo
4
  Plugin URI: https://wordpress.org/plugins/rss-for-yandex-turbo/
5
  Description: Создание RSS-ленты для сервиса Яндекс.Турбо.
6
+ Version: 1.26
7
  Author: Flector
8
  Author URI: https://profiles.wordpress.org/flector#content-plugins
9
  Text Domain: rss-for-yandex-turbo
13
  function yturbo_check_version() {
14
  $yturbo_options = get_option('yturbo_options');
15
  if (!isset($yturbo_options['version'])){$yturbo_options['version']='1.00';update_option('yturbo_options',$yturbo_options);}
16
+ if ( $yturbo_options['version'] != '1.26' ) {
17
  yturbo_set_new_options();
18
  }
19
  }
90
  if (!isset($yturbo_options['ytfeedbackviber'])) {$yturbo_options['ytfeedbackviber']='';}
91
  if (!isset($yturbo_options['ytfeedbackwhatsapp'])) {$yturbo_options['ytfeedbackwhatsapp']='';}
92
  if (!isset($yturbo_options['ytfeedbacktelegram'])) {$yturbo_options['ytfeedbacktelegram']='';}
 
 
93
  if (!isset($yturbo_options['ytexcludeshortcodes'])) {$yturbo_options['ytexcludeshortcodes']='disabled';}
94
+ if (!isset($yturbo_options['ytexcludeshortcodeslist'])) {$yturbo_options['ytexcludeshortcodeslist']='contact-form-7,';}
95
  if (!isset($yturbo_options['yttab'])) {$yturbo_options['yttab']='RSS-лента';}
96
  if (!isset($yturbo_options['ytrating'])) {$yturbo_options['ytrating']='disabled';}
97
  if (!isset($yturbo_options['ytratingmin'])) {$yturbo_options['ytratingmin']='4.70';}
124
 
125
  if (!isset($yturbo_options['ytrelateddate'])) {$yturbo_options['ytrelateddate']='12';}
126
 
127
+ $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags($yturbo_options['yttitle'])));
128
+ $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags($yturbo_options['ytdescription'])));
129
+ if (!isset($yturbo_options['required'])) {$yturbo_options['required']='1.00';}
130
 
131
+ $yturbo_options['version'] = '1.26';
132
  update_option('yturbo_options', $yturbo_options);
133
  }
134
  //функция установки новых опций при обновлении плагина у пользователей end
136
  //функция установки значений по умолчанию при активации плагина begin
137
  function yturbo_init() {
138
  $yturbo_options = array();
139
+ $yturbo_options['version'] = '1.26';
140
  $yturbo_options['ytrssname'] = 'turbo';
141
+ $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title'))));
142
  $yturbo_options['ytlink'] = get_bloginfo_rss('url');
143
+ $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('description'))));
144
  $yturbo_options['ytlanguage'] = 'ru';
145
  $yturbo_options['ytnumber'] = '250';
146
  $yturbo_options['yttype'] = 'post';
235
  $yturbo_options['ytfeedbackwhatsapp'] = '';
236
  $yturbo_options['ytfeedbacktelegram'] = '';
237
 
 
 
 
238
  $yturbo_options['ytexcludeshortcodes'] = 'disabled';
239
+ $yturbo_options['ytexcludeshortcodeslist'] = 'contact-form-7,';
240
  $yturbo_options['yttab'] = 'RSS-лента';
241
 
242
  $yturbo_options['ytrating'] = 'disabled';
264
  $yturbo_options['ytturbocolumn'] = 'enabled';
265
  $yturbo_options['ytrelateddate'] = '12';
266
 
267
+ $yturbo_options['required']='1.00';
268
+
269
  add_option('yturbo_options', $yturbo_options);
270
 
271
  yturbo_add_feed();
324
  wp_enqueue_script('yturbo-textillate');
325
  wp_register_style('yturbo-animate', $purl . '/inc/animate.min.css');
326
  wp_enqueue_style('yturbo-animate');
327
+ wp_register_script('yturbo-script', $purl . '/inc/yturbo-script.js', array(), '1.26');
328
  wp_enqueue_script('yturbo-script');
329
+ wp_register_style('yturbo-css', $purl . '/inc/yturbo-css.css', array(), '1.26');
330
  wp_enqueue_style('yturbo-css');
331
  }
332
  }
356
  $wp_rewrite->flush_rules();
357
  }
358
 
359
+ $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags($_POST['yttitle'])));
360
  $yturbo_options['ytlink'] = esc_url_raw($_POST['ytlink']);
361
+ $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags($_POST['ytdescription'])));
362
  $yturbo_options['ytlanguage'] = sanitize_text_field($_POST['ytlanguage']);
363
 
364
  $ytnumber = sanitize_text_field($_POST['ytnumber']);
446
  if($yturbo_options['ytad5set'] == "РСЯ" && !$yturbo_options['ytad5rsa']) {$yturbo_options['ytad5'] = 'disabled';}
447
  if($yturbo_options['ytad5set'] == "ADFOX" && !$yturbo_options['ytadfox5']) {$yturbo_options['ytad5'] = 'disabled';}
448
  }
449
+ if ( yturbo_check_ads() == true ) {
450
+ $yturbo_options['ytad1'] = 'disabled';
451
+ $yturbo_options['ytad2'] = 'disabled';
452
+ $yturbo_options['ytad3'] = 'disabled';
453
+ $yturbo_options['ytad4'] = 'disabled';
454
+ $yturbo_options['ytad5'] = 'disabled';
455
+ }
456
 
457
  if(isset($_POST['ytrelated'])){$yturbo_options['ytrelated'] = sanitize_text_field($_POST['ytrelated']);}else{$yturbo_options['ytrelated'] = 'disabled';}
458
  $ytrelatednumber = sanitize_text_field($_POST['ytrelatednumber']);
521
  $yturbo_options['ytfeedbackwhatsapp'] = sanitize_text_field($_POST['ytfeedbackwhatsapp']);
522
  $yturbo_options['ytfeedbacktelegram'] = sanitize_text_field($_POST['ytfeedbacktelegram']);
523
 
 
 
 
524
  if(isset($_POST['ytexcludeshortcodes'])){$yturbo_options['ytexcludeshortcodes'] = sanitize_text_field($_POST['ytexcludeshortcodes']);}else{$yturbo_options['ytexcludeshortcodes'] = 'disabled';}
525
+ $yturbo_options['ytexcludeshortcodeslist'] = '';
526
+ $checkboxes = isset($_POST['shortcodes']) ? $_POST['shortcodes'] : array();
527
+ foreach($checkboxes as $value) {$yturbo_options['ytexcludeshortcodeslist'] .= $value . ',';}
528
 
529
  $types = explode(",", $yturbo_options['yttype']);
530
  $types = array_diff($types, array(''));
547
  $yturbo_options['ytsearchmesto'] = sanitize_text_field($_POST['ytsearchmesto']);
548
 
549
  if(isset($_POST['yttoc'])){$yturbo_options['yttoc'] = sanitize_text_field($_POST['yttoc']);}else{$yturbo_options['yttoc'] = 'disabled';}
550
+ $yturbo_options['yttype2'] = '';
551
  $checkboxes = isset($_POST['types2']) ? $_POST['types2'] : array();
552
  foreach($checkboxes as $value) {$yturbo_options['yttype2'] .= $value . ',';}
553
  $yturbo_options['yttype2'] = sanitize_text_field($yturbo_options['yttype2']);
636
  </ul>
637
 
638
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='RSS-лента'){echo ' active';} ?>"><!-- begin tab -->
 
639
 
640
  <?php yturbo_count_feeds(); ?>
641
 
642
+ <?php if ( get_option('permalink_structure') ) {
643
  $kor = get_bloginfo('url') .'/feed/' . '<strong>' . $yturbo_options['ytrssname'] . '</strong>/';
644
+ } else {
645
  $kor = get_bloginfo('url') .'/?feed=' . '<strong>' . $yturbo_options['ytrssname']. '</strong>';
646
+ } ?>
647
 
648
+ <table class="form-table">
649
  <tr class="trbordertop">
650
  <th><?php _e('Имя RSS-ленты:', 'rss-for-yandex-turbo'); ?></th>
651
  <td>
689
  <th><?php _e('Количество записей:', 'rss-for-yandex-turbo'); ?></th>
690
  <td>
691
  <input style="max-width: 74px;" name="ytnumber" type="number" min="1" max="999999" step="1" value="<?php echo $yturbo_options['ytnumber']; ?>" />
692
+ <br /><small><?php _e('Общее количество записей в RSS-ленте (обязательно прочтите про <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/quota-docpage/">ограничения</a> Яндекса).', 'rss-for-yandex-turbo'); ?> <br />
693
+ <?php _e('При установке более 1000 записей необходимо включить разбитие RSS-ленты в обязательном порядке.', 'rss-for-yandex-turbo'); ?> <br />
694
  </small>
695
  </td>
696
  </tr>
699
  <td>
700
  <label for="ytrazb"><input type="checkbox" value="enabled" name="ytrazb" id="ytrazb" <?php if ($yturbo_options['ytrazb'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить разбитие RSS-ленты', 'rss-for-yandex-turbo'); ?></label>
701
  <br /><small><?php _e('Плагин будет генерировать несколько RSS-лент с указанным числом записей в каждой.', 'rss-for-yandex-turbo'); ?> <br />
702
+ <?php _e('Включите эту опцию, если RSS-лента слишком долго генерируется или если она превышает <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/quota-docpage/">ограничения</a>, установленные Яндексом.', 'rss-for-yandex-turbo'); ?><br />
703
+ <?php _e('Яндекс может очень сильно нагружать ваш сервер - разбитие ленты и использование плагинов кэширования будет в этом случае весьма полезно.', 'rss-for-yandex-turbo'); ?> <br />
 
 
 
 
 
704
  </small>
705
  </td>
706
  </tr>
707
  <tr class="ytrazbnumbertr" <?php if ($yturbo_options['ytrazb'] == 'disabled') echo 'style="display:none;"'; ?>>
708
  <th><?php _e('Делить RSS-ленту по:', 'rss-for-yandex-turbo'); ?></th>
709
  <td>
710
+ <input style="max-width: 60px;" name="ytrazbnumber" type="number" min="1" max="1000" step="1" value="<?php echo $yturbo_options['ytrazbnumber']; ?>" />
711
  <br /><small><?php _e('Укажите число записей, по которому лента будет делиться.', 'rss-for-yandex-turbo'); ?><br />
712
  <?php _e('Для получения ссылок на ваши RSS-ленты сохраните настройки плагина.', 'rss-for-yandex-turbo'); ?><br />
713
  <?php _e('Важно: разбитие не будет работать, если на вашем сайте нет необходимого числа записей.', 'rss-for-yandex-turbo'); ?> <br />
750
  </div><!-- end tab -->
751
 
752
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Оформление'){echo ' active';} ?>"><!-- begin tab -->
 
753
 
754
+ <p><?php _e('В этом разделе собраны настройки, касающиеся оформления контента на турбо-страницах.', 'rss-for-yandex-turbo'); ?><br />
755
+ <?php _e('Отключите вывод миниатюр, если они не выводятся в вашей теме на страницах одиночных записей,', 'rss-for-yandex-turbo'); ?><br />
756
+ <?php _e('так как Яндексу не нравится, когда турбо-страница не соответствует оригинальной версии.', 'rss-for-yandex-turbo'); ?><br />
757
+ </p>
758
 
759
+ <table class="form-table">
760
  <tr class="trbordertop">
761
  <th class="tdcheckbox"><?php _e('Дата записей:', 'rss-for-yandex-turbo'); ?></th>
762
  <td>
786
  </small>
787
  </td>
788
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
789
  <tr class="ytthumbnailtr trbordertop">
790
  <th class="tdcheckbox"><?php _e('Миниатюра в RSS:', 'rss-for-yandex-turbo'); ?></th>
791
  <td>
803
  <option value="<?php echo $size_name ?>" <?php if ($yturbo_options['ytselectthumb'] == $size_name) echo 'selected="selected"'; ?>><?php echo $size_name ?></option>
804
  <?php endforeach; ?>
805
  </select>
806
+ <br /><small><?php _e('Выберите нужный размер миниатюры (в списке находятся все зарегистрированные на сайте размеры миниатюр).', 'rss-for-yandex-turbo'); ?><br />
807
+ <?php _e('Необходимо выбрать именно тот размер, который используется вашей темой для вывода "Изображения записи".', 'rss-for-yandex-turbo'); ?><br />
808
+ </small>
809
  </td>
810
  </tr>
811
  <tr class="trbordertop">
925
  </div><!-- end tab -->
926
 
927
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Блоки Яндекс.Турбо'){echo ' active';} ?>"><!-- begin tab -->
 
928
 
929
+ <p><?php _e('Часть этих блоков вы можете настроить напрямую в Яндекс.Вебмастере.', 'rss-for-yandex-turbo'); ?><br />
930
+ <?php _e('Указать логотип сайта можно только через Яндекс.Вебмастер.', 'rss-for-yandex-turbo'); ?><br />
931
+ </p>
932
 
933
+ <table class="form-table">
934
  <tr class="ytselectmenutr trbordertop">
935
  <th><?php _e('Меню:', 'rss-for-yandex-turbo'); ?></th>
936
  <td>
943
  </select>
944
  <?php $menulink = get_bloginfo('url') .'/wp-admin/nav-menus.php'; ?>
945
  <br /><small><?php _e('Выберите меню для использования на турбо-страницах (создать меню можно на вкладке ', 'rss-for-yandex-turbo'); ?> "<a target="_blank" href="<?php echo $menulink; ?>"><?php _e('Внешний вид \ Меню', 'rss-for-yandex-turbo'); ?></a>").<br />
946
+ <?php _e('Меню должно быть ограничено <strong>10</strong> ссылками без иерархии (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/header-docpage/#menu">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
947
+ <?php _e('Через Яндекс.Вебмастер можно установить меню без ограничений и с иерархией.', 'rss-for-yandex-turbo'); ?><br />
948
  </small>
949
  </td>
950
  </tr>
952
  <th class="tdcheckbox"><?php _e('Блок "Поделиться":', 'rss-for-yandex-turbo'); ?></th>
953
  <td>
954
  <label for="ytshare"><input type="checkbox" value="enabled" name="ytshare" id="ytshare" <?php if ($yturbo_options['ytshare'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок "Поделиться" на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
955
+ <br /><small><?php _e('Этот блок будет добавлен в конце записи (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/share-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
956
  </small>
957
  </td>
958
  </tr>
1005
  <th class="tdcheckbox"><?php _e('Блок обратной связи:', 'rss-for-yandex-turbo'); ?></th>
1006
  <td>
1007
  <label for="ytfeedback"><input type="checkbox" value="enabled" name="ytfeedback" id="ytfeedback" <?php if ($yturbo_options['ytfeedback'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок обратной связи на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1008
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок обратной связи в выбранном вами месте (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/feedback-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1009
  </small>
1010
  </td>
1011
  </tr>
1239
  <th class="tdcheckbox"><?php _e('Комментарии:', 'rss-for-yandex-turbo'); ?></th>
1240
  <td>
1241
  <label for="ytcomments"><input type="checkbox" value="enabled" name="ytcomments" id="ytcomments" <?php if ($yturbo_options['ytcomments'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить комментарии к турбо-страницам', 'rss-for-yandex-turbo'); ?></label>
1242
+ <br /><small><?php _e('К записям на турбо-страницах будут добавлены комментарии (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/comments-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1243
  </small>
1244
  </td>
1245
  </tr>
1295
  <th class="tdcheckbox"><?php _e('Похожие записи:', 'rss-for-yandex-turbo'); ?></th>
1296
  <td>
1297
  <label for="ytrelated"><input type="checkbox" value="enabled" name="ytrelated" id="ytrelated" <?php if ($yturbo_options['ytrelated'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок похожих записей на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1298
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок похожих записей (в конце страницы).', 'rss-for-yandex-turbo'); ?></small>
1299
  </td>
1300
  </tr>
1301
  <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1341
  <th class="tdcheckbox"><?php _e('Непрерывная лента статей:', 'rss-for-yandex-turbo'); ?></th>
1342
  <td>
1343
  <label for="ytrelatedinfinity"><input type="checkbox" value="enabled" name="ytrelatedinfinity" id="ytrelatedinfinity" <?php if ($yturbo_options['ytrelatedinfinity'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить непрерывную ленту статей', 'rss-for-yandex-turbo'); ?></label>
1344
+ <br /><small><?php _e('Вместо обычного короткого списка похожих статей будет выводиться непрерывная лента из полных записей (пример смотреть <a target="_blank" href="https://yandex.ru/turbo?text=promo-infinite">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1345
  <?php _e('При включении непрерывной ленты статей вывод миниатюр для похожих записей будет отключен.', 'rss-for-yandex-turbo'); ?><br />
1346
  </small>
1347
  </td>
1365
  <th class="tdcheckbox"><?php _e('Рейтинг:', 'rss-for-yandex-turbo'); ?></th>
1366
  <td>
1367
  <label for="ytrating"><input type="checkbox" value="enabled" name="ytrating" id="ytrating" <?php if ($yturbo_options['ytrating'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить рейтинг на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1368
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок рейтинга (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/rating-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?></small>
1369
  </td>
1370
  </tr>
1371
  <tr class="ytratingchildtr" <?php if ($yturbo_options['ytrating'] == 'disabled') echo 'style="display:none;"'; ?>>
1382
  <th class="tdcheckbox"><?php _e('Поиск:', 'rss-for-yandex-turbo'); ?></th>
1383
  <td>
1384
  <label for="ytsearch"><input type="checkbox" value="enabled" name="ytsearch" id="ytsearch" <?php if ($yturbo_options['ytsearch'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить поиск на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1385
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок поиска (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/search-block-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1386
  <?php _e('На данный момент поиск не будет работать, если ваш сайт работает не на https протоколе.', 'rss-for-yandex-turbo'); ?>
1387
  </small>
1388
  </td>
1417
  </div><!-- end tab -->
1418
 
1419
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Счетчики'){echo ' active';} ?>"><!-- begin tab -->
 
1420
 
1421
+ <p><?php _e('Укажите идентификаторы нужных вам счетчиков (<a target="_blank" href="https://yandex.ru/dev/turbo/doc/settings/find-counter-id-docpage/">как узнать идентификатор счетчика</a>).<br />В ленте будут использованы <strong>все</strong> указанные вами счетчики.', 'rss-for-yandex-turbo'); ?></p>
1422
 
1423
+ <table class="form-table">
1424
  <tr class="trbordertop">
1425
  <th><?php _e('Яндекс.Метрика:', 'rss-for-yandex-turbo'); ?></th>
1426
  <td>
1476
  </div><!-- end tab -->
1477
 
1478
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Реклама'){echo ' active';} ?>"><!-- begin tab -->
 
1479
 
1480
+ <?php if ( yturbo_check_ads() == true ) echo '<div style="display:none;">'; ?>
1481
+ <p><?php _e('Реклама, установленная в Яндекс.Вебмастере, распределяется равномерно по тексту страницы (примерно каждые 2-3 экрана).', 'rss-for-yandex-turbo'); ?><br />
1482
+ <?php _e('Если у вас большие по размеру контента статьи, то имеет смысл использовать равномерное распределение рекламы от Яндекса.', 'rss-for-yandex-turbo'); ?><br />
1483
+ <?php _e('В противном же случае, рекламные блоки лучше установить через плагин (будет выведено минимум 3 рекламных блока).', 'rss-for-yandex-turbo'); ?><br />
1484
+ <?php _e('При проблемах с настройкой рекламной сети ADFOX ознакомьтесь со справочными материалами: <a target="_blank" href="https://sites.help.adfox.ru/page/225">статья</a>, <a target="_blank" href="https://webmaster.yandex.ru/blog/videourok-kak-razmeschat-reklamu-na-turbo-stranitsakh-cherez-adfox">видеоурок</a>.', 'rss-for-yandex-turbo'); ?><br />
1485
+ </p>
1486
 
1487
+ <table class="form-table">
1488
  <tr class="myturbo trbordertop">
1489
  <th class="tdcheckbox"><?php _e('Блок рекламы #1:', 'rss-for-yandex-turbo'); ?></th>
1490
  <td>
1662
  </tr>
1663
 
1664
  </table>
1665
+ <?php if ( yturbo_check_ads() == true ) echo '</div>'; ?>
1666
+ <?php if ( yturbo_check_ads() == true ) : ?>
1667
+ <div class="alert alert-success">
1668
+ <?php $turboadslink = get_bloginfo('url') .'/wp-admin/options-general.php?page=wpcase-turbo-ads.php'; ?>
1669
+ <p><?php _e( 'Настроить рекламу вы можете на странице', 'rss-for-yandex-turbo' ); ?> <a target="_blank" href="<?php echo $turboadslink; ?>"><?php _e( 'настроек', 'rss-for-yandex-turbo' ); ?></a> <?php _e('плагина "<strong>WPCase: Turbo Ads</strong>".', 'rss-for-yandex-turbo'); ?></p>
1670
+ </div>
1671
+ <?php endif; ?>
1672
  </div><!-- end tab -->
1673
 
1674
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Типы записей и исключения'){echo ' active';} ?>"><!-- begin tab -->
 
1675
 
1676
+ <p><?php _e('Если у вас магазин на WordPress, то не включайте тип "Товары", а используйте <a target="_blank" href="https://webmaster.yandex.ru/blog/internet-magaziny-v-turbo">плагин генерации YML</a>.', 'rss-for-yandex-turbo'); ?><br />
1677
+ <?php _e('Будьте внимательны при настройке таксономий для включения или исключения из RSS-ленты.', 'rss-for-yandex-turbo'); ?><br />
1678
+ </p>
1679
 
1680
+ <table class="form-table">
1681
  <tr class="trbordertop">
1682
  <th class="tdcheckbox"><?php _e('Типы записей:', 'rss-for-yandex-turbo'); ?></th>
1683
  <td>
1830
  'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
1831
  'toolbar2' => '',
1832
  'toolbar3' => '',
1833
+ 'content_css' => $purl . '/inc/editor.css?ver=1.26'
1834
  ),
1835
  'quicktags' => array(
1836
  'id' => $editor_id,
1857
  </div><!-- end tab -->
1858
 
1859
  <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Фильтры'){echo ' active';} ?>"><!-- begin tab -->
 
1860
 
1861
  <p><?php _e('В данной секции находятся продвинутые настройки. <br />Пожалуйста, будьте внимательны в этом разделе!', 'rss-for-yandex-turbo'); ?> </p>
1862
 
1863
+ <table class="form-table">
1864
  <tr class="ytexcludeshortcodestr trbordertop">
1865
  <th class="tdcheckbox"><?php _e('Фильтр шорткодов:', 'rss-for-yandex-turbo'); ?></th>
1866
  <td>
1869
  </td>
1870
  </tr>
1871
  <tr class="ytexcludeshortcodeslisttr" <?php if ($yturbo_options['ytexcludeshortcodes'] == 'disabled') echo 'style="display:none;"'; ?>>
1872
+ <th style="padding-top: 5px!important;"><?php _e('Шорткоды для удаления:', 'rss-for-yandex-turbo'); ?></th>
1873
+ <td style="padding-top: 5px!important;">
1874
+ <?php
1875
+ $shortcodes = $GLOBALS['shortcode_tags'];
1876
+ $exclude = array('wp_caption','caption','gallery','playlist','audio','video','embed','yt-permalink','yt-title');
1877
+ $result = array();
1878
+
1879
+ foreach ($shortcodes as $key => $value) {
1880
+ if ( ! in_array( $key, $exclude ) ) {
1881
+ $result[] = $key;
1882
+ }
1883
+ }
1884
+
1885
+ $ytshortcodes = explode(",", $yturbo_options['ytexcludeshortcodeslist']);
1886
+ $ytshortcodes = array_diff($ytshortcodes, array(''));
1887
+
1888
+ foreach ( $result as $shortcode ) { ?>
1889
+ <label class="shortcodes" for="<?php echo $shortcode; ?>"><input type="checkbox" value="<?php echo $shortcode; ?>" name="shortcodes[]" id="<?php echo $shortcode; ?>" <?php if (in_array($shortcode, $ytshortcodes)) echo 'checked="checked"'; ?> />[<?php echo $shortcode; ?>]</label>
1890
+ <?php } ?>
1891
+ <small><?php _e('В списке находятся все зарегистрированные на сайте шорткоды, кроме системных.', 'rss-for-yandex-turbo'); ?><br />
1892
  </small>
1893
  </td>
1894
  </tr>
2005
  $yttype = $yturbo_options['yttype'];
2006
  $yttype = explode(",", $yttype);
2007
  $yttype = array_diff($yttype, array(''));
2008
+
2009
+ $ytqueryselect = $yturbo_options['ytqueryselect'];
2010
+ $yttaxlist = $yturbo_options['yttaxlist'];
2011
+ $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
2012
+
2013
+ if (!$yttaxlist) {$yttaxlist = 'category:10000000';}
2014
+ if ($ytqueryselect=='Все таксономии, кроме исключенных' && $yttaxlist) {
2015
+ $textAr = explode("\n", trim($yttaxlist));
2016
+ $textAr = array_filter($textAr, 'trim');
2017
+ add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
2018
+ foreach ($textAr as $line) {
2019
+ $tax = explode(":", $line);
2020
+ $taxterm = explode(",", $tax[1]);
2021
+ $taxterm = array_map('intval', $taxterm);
2022
+ if ( has_term($taxterm, $tax[0]) ) {
2023
+ remove_meta_box('yturbo_meta_box', $yttype, 'normal' );
2024
+ break;
2025
+ }
2026
+ }
2027
+ }
2028
+ if (!$ytaddtaxlist) {$ytaddtaxlist = 'category:10000000';}
2029
+ if ($ytqueryselect=='Только указанные таксономии' && $ytaddtaxlist) {
2030
+ $textAr = explode("\n", trim($ytaddtaxlist));
2031
+ $textAr = array_filter($textAr, 'trim');
2032
+ foreach ($textAr as $line) {
2033
+ $tax = explode(":", $line);
2034
+ $taxterm = explode(",", $tax[1]);
2035
+ $taxterm = array_map('intval', $taxterm);
2036
+ if ( has_term($taxterm, $tax[0]) ) {
2037
+ add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
2038
+ break;
2039
+ }
2040
+ }
2041
+ }
2042
  }
2043
  add_action( 'add_meta_boxes', 'yturbo_meta_box' );
2044
  //создаем метабокс end
2241
  'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
2242
  'toolbar2' => '',
2243
  'toolbar3' => '',
2244
+ 'content_css' => $purl . '/inc/editor.css?ver=1.26'
2245
  ),
2246
  'quicktags' => array(
2247
  'id' => 'customtemplate',
2294
  $ytthumbnail = $yturbo_options['ytthumbnail'];
2295
  $ytselectthumb = $yturbo_options['ytselectthumb'];
2296
 
2297
+ if ( yturbo_check_ads() == true ) {
2298
+ $yturbo_options['ytad1'] = 'disabled';
2299
+ $yturbo_options['ytad2'] = 'disabled';
2300
+ $yturbo_options['ytad3'] = 'disabled';
2301
+ $yturbo_options['ytad4'] = 'disabled';
2302
+ $yturbo_options['ytad5'] = 'disabled';
2303
+ update_option('yturbo_options', $yturbo_options);
2304
+ }
2305
  $ytad1 = $yturbo_options['ytad1'];
2306
  $ytad1set = $yturbo_options['ytad1set'];
2307
  $ytad1rsa = $yturbo_options['ytad1rsa'];
2369
  $ytcommentsdrevo = 1;
2370
  }
2371
  $ytpostdate = $yturbo_options['ytpostdate'];
 
 
2372
 
2373
  $ytrating = $yturbo_options['ytrating'];
2374
  $ytratingmin = $yturbo_options['ytratingmin'];
2442
  version="2.0">
2443
  <channel>
2444
  <turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
2445
+ <title><?php echo stripslashes($yttitle); ?></title>
2446
  <link><?php echo esc_html($ytlink); ?></link>
2447
+ <description><?php echo stripslashes($ytdescription); ?></description>
2448
  <?php if ($ytmetrika) { ?><turbo:analytics id="<?php echo $ytmetrika; ?>" type="Yandex"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2449
  <?php if ($ytliveinternet) { ?><turbo:analytics type="LiveInternet"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2450
  <?php if ($ytgoogle) { ?><turbo:analytics id="<?php echo $ytgoogle; ?>" type="Google"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2453
  <?php if ($ytmediascope) { ?><turbo:analytics id="<?php echo $ytmediascope; ?>" type="Mediascope"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2454
  <?php do_action( 'yturbo_ads_header' ); echo yturbo_turbo_ads(); ?>
2455
  <language><?php echo $ytlanguage; ?></language>
2456
+ <generator>RSS for Yandex Turbo v1.26 (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
2457
+ <?php do_action( 'yturbo_generator' ); ?>
2458
  <?php while($query->have_posts()) : $query->the_post(); ?>
2459
  <?php $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true); ?>
2460
  <?php if ($ytremoveturbo != 'enabled' && $ytremove != 'yes') { ?>
2462
  <?php } else { ?>
2463
  <item turbo="false">
2464
  <?php } ?>
2465
+ <title><?php echo get_the_title_rss(); ?></title>
2466
  <link><?php the_permalink_rss(); ?></link>
2467
+ <turbo:topic><?php echo get_the_title_rss(); ?></turbo:topic>
2468
  <turbo:source><?php the_permalink_rss(); ?></turbo:source>
2469
+ <?php if ($ytpostdate == 'enabled') : ?>
2470
  <?php $gmt_offset = get_option('gmt_offset');
2471
  $gmt_offset_abs = floor(abs($gmt_offset));
2472
  $gmt_offset_str = ($gmt_offset_abs > 9) ? $gmt_offset_abs.'00' : ('0'.$gmt_offset_abs.'00');
2477
  <?php if ($yturbo_options['ytdateformat'] == 'mod') { ?>
2478
  <pubDate><?php echo mysql2date('D, d M Y H:i:s '.$gmt_offset_str, get_date_from_gmt(get_post_modified_time('Y-m-d H:i:s', true)), false); ?></pubDate>
2479
  <?php } ?>
2480
+ <?php endif; ?>
2481
  <?php if ($ytauthorselect != 'Отключить указание автора') { ?>
2482
  <?php if ($ytauthor && $ytauthorselect != 'Автор записи') {
2483
  echo '<author>'.$ytauthor.'</author>'.PHP_EOL;
2590
  $replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2591
  $content = preg_replace($pattern, $replacement, $content);
2592
 
2593
+ //формируем audio для mp3 файлов (гутенберг)
2594
+ $pattern = "/<audio(.*?)src=\"(.*?).mp3\"><\/audio>/i";
2595
+ $replacement = '<div data-block="audio" src="$2.mp3"></div>';
2596
+ $content = preg_replace($pattern, $replacement, $content);
2597
+
2598
+ //формируем audio для mp3 файлов (классический редактор)
2599
+ $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'audio\');</script><![endif]-->', '', $content);
2600
+ $pattern = "/<audio class=\"wp-audio-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp3(.*?)\"(.*?)\/>(.*?)<\/audio>/i";
2601
+ $replacement = '<div data-block="audio" src="$3.mp3"></div>';
2602
+ $content = preg_replace($pattern, $replacement, $content);
2603
+
2604
  //удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
2605
  if (preg_match_all("/<figure><img(.*?)>(.*?)<\/figure>/i", $content, $res)) {
2606
  $i = 0;
2637
  ?>
2638
  <header>
2639
  <?php if ( $ytthumbnail=='enabled' && has_post_thumbnail(get_the_ID()) ) {
2640
+ echo '<figure><img src="'. strtok(get_the_post_thumbnail_url(get_the_ID(),$ytselectthumb), '?') .'" /></figure>'.PHP_EOL; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2641
  <?php } ?>
2642
+ <h1><?php echo get_the_title_rss(); ?></h1>
2643
  <?php if ($ytselectmenu!='Не использовать') {
2644
  echo '<menu>'.PHP_EOL;
2645
  $menu = wp_get_nav_menu_object( $ytselectmenu );
2911
  if ($ytrazb == 'enabled') {
2912
  $paged = 2;
2913
  echo '<p>Вы установили слишком большое общее количество записей в RSS (больше 500 записей), <br />
2914
+ поэтому чтобы не нагружать базу данных фактическая проверка наличия записей в разбитых <br />
2915
+ RSS-лентах не осуществлялась. Проверяйте наличие записей самостоятельно (пустые <br />
2916
+ RSS-ленты сервис Яндекс.Вебмастер откажется принимать и выдаст ошибку).</p>
2917
+ <p>Всего у вас ' . yturbo_russian_number(ceil($ytnumber / $ytrazbnumber), array(' RSS-лента', ' RSS-ленты', ' RSS-лент')) . ' (максимально по '.yturbo_russian_number($ytrazbnumber, array(' запись', ' записи', ' записей')). ' в каждой):</p>';
2918
+ echo '<ul style="margin-bottom: 25px;">';
2919
  if ( get_option('permalink_structure') ) {
2920
  echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
2921
  } else {
2924
  while ($paged <= ceil($ytnumber / $ytrazbnumber) ) {
2925
 
2926
  if ( get_option('permalink_structure') ) {
2927
+ echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'</a></li>';
2928
+ } else {
2929
+ echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$paged.'</a></li>';
2930
+ }
2931
  $paged++;
2932
 
2933
+ if ($paged == 10 && (ceil($ytnumber / $ytrazbnumber))>10) {
2934
  echo '<li>....</li>';
2935
+ echo '<li>Слишком много RSS-лент, остальные ленты были скрыты (<span id="showlistrss">показать</span>).</li>';
2936
+ echo '<div id="allrss" style="display:none;">';
2937
  }
2938
  }
2939
+ if ($paged >= 10 && (ceil($ytnumber / $ytrazbnumber))>10) {
2940
+ echo '</div>';
2941
+ }
2942
  echo '</ul>';
2943
  } else {
2944
+ echo '<p>Всего у вас 1 RSS-лента ' . ' (в ней максимально может быть '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
2945
+ echo '<ul style="margin-bottom: 25px;">';
2946
+ if ( get_option('permalink_structure') ) {
2947
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
2948
+ } else {
2949
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
2950
+ }
2951
+ echo '</ul>';
2952
  }
2953
  else :
2954
 
2961
  if ($query->post_count < $ytnumber) $ytnumber = $query->post_count;
2962
 
2963
  if ($ytrazb == 'enabled' && (ceil($query->post_count / $ytrazbnumber) > 1)) {
2964
+ echo '<p>Согласно настройкам плагина в RSS попадут ' . yturbo_russian_number($query->post_count, array(' запись', ' записи', ' записей')) . ' (максимально: '.$yturbo_options['ytnumber'].').<br/>';
2965
+ echo 'Эти ' . yturbo_russian_number($query->post_count, array(' запись', ' записи', ' записей')) . ' распределены по ' . yturbo_russian_number(ceil($query->post_count / $ytrazbnumber), array(' RSS-ленте', ' RSS-лентам', ' RSS-лентам')) . ' (разбитие по '. yturbo_russian_number($ytrazbnumber, array(' записи', ' записям', ' записям')) .'):</p>';
2966
  } else {
2967
  echo '<p>Всего у вас 1 RSS-лента '. ' (в ней '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
2968
  }
2981
  } else {
2982
  echo '<li>'.$x.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'</a></li>';
2983
  }
2984
+ if ($x == 9 && (ceil($query->post_count / $ytrazbnumber))>9) {
2985
+ echo '<li>....</li>';
2986
+ echo '<li>Слишком много RSS-лент, остальные ленты были скрыты (<span id="showlistrss">показать</span>).</li>';
2987
+ echo '<div id="allrss" style="display:none;">';
2988
+ }
2989
  }
2990
+ if (ceil($query->post_count / $ytrazbnumber)>9) {
2991
+ echo '</div>';
2992
  }
2993
  }
2994
 
3414
  global $shortcode_tags;
3415
  $stack = $shortcode_tags;
3416
 
3417
+ $code = explode(",", $yturbo_options['ytexcludeshortcodeslist']);
3418
+ $code = array_diff($code, array(''));
3419
 
3420
  $how_many = count($code);
3421
  for($i = 0; $i < $how_many; $i++){
3567
 
3568
  //функция удаления эмоджи begin
3569
  function yturbo_remove_emoji( $text ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
3570
 
3571
+ $text = preg_replace('/[^\pL\pM[:ascii:]]+/u', '', $text);
3572
+ $text = str_replace(' ', ' ', $text);
3573
+ $text = trim($text);
3574
 
3575
+ return $text;
 
 
 
 
 
 
 
 
 
 
 
 
 
3576
  }
3577
  //функция удаления эмоджи end
3578
 
3579
+ //приводим заголовки записей в соответствие с требованиями яндекса begin
3580
  function yturbo_filter_title_rss( $title ) {
3581
  $yturbo_options = get_option('yturbo_options');
3582
 
3583
+ //если это не лента плагина возвращаем оригинальный заголовок
3584
  if ( ! is_feed($yturbo_options['ytrssname']) )
3585
  return $title;
3586
 
3587
+ //удаляем эмоджи (яндекс выдает на них ошибку)
3588
  $title = yturbo_remove_emoji($title);
3589
+ //устанавливаем заголовком название сайта, если заголовок пустой
3590
+ $title = yturbo_empty_title($title);
3591
+ //преобразуем спец. символы в html-сущности
3592
+ $title = esc_html($title);
3593
+ //обрезаем заголовок по словам, чтобы не превышать ограничение в 240 символов
3594
+ $title = yturbo_cut_by_words(237, $title);
3595
+ //обрабатываем фильтром для установки пользовательского заголовка
3596
+ $title = apply_filters('yturbo_custom_title', $title);
3597
 
3598
  return $title;
3599
  }
3600
  add_filter( 'the_title_rss', 'yturbo_filter_title_rss' );
3601
+ //приводим заголовки записей в соответствие с требованиями яндекса end
3602
 
3603
  //функция обрезки текста по словам begin
3604
  function yturbo_cut_by_words( $maxlen, $text ) {
3624
  //добавляем плагины в визуальный редактор begin
3625
  function yturbo_add_plugins_tinymce( $plugins ) {
3626
  $purl = plugins_url('', __FILE__);
3627
+ $plugins['yablocks'] = $purl . '/inc/yablocks.js?ver=1.26';
3628
+ $plugins['table'] = $purl . '/inc/table.js?ver=1.26';
3629
  return $plugins;
3630
  }
3631
  add_filter( 'mce_external_plugins', 'yturbo_add_plugins_tinymce' );
3757
  return get_the_title_rss();
3758
  }
3759
  add_shortcode( 'yt-title', 'yt_title_func' );
3760
+ //шорткод вывода заголовка записи end
3761
+
3762
+ //функция проверки наличия плагина "WPCase: Turbo Ads" begin
3763
+ function yturbo_check_ads() {
3764
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
3765
+ if ( is_plugin_active( 'wpcase-turbo-ads/wpcase-turbo-ads.php' ) ) {
3766
+ return true;
3767
+ } else {
3768
+ return false;
3769
+ }
3770
+ }
3771
+ //функция проверки наличия плагина "WPCase: Turbo Ads" end
3772
+
3773
+ //скрываем произвольные поля плагина begin
3774
+ function yturbo_hide_custom_fields( $protected, $meta_key ){
3775
+ $hide_meta_keys = array(
3776
+ 'ytad1meta',
3777
+ 'ytad2meta',
3778
+ 'ytad3meta',
3779
+ 'ytad4meta',
3780
+ 'ytad5meta',
3781
+ 'ytremove_meta_value',
3782
+ 'ytrssenabled_meta_value',
3783
+ 'template_meta',
3784
+ 'custom_template',
3785
+ );
3786
+ if ( in_array($meta_key, $hide_meta_keys) ) {
3787
+ return true;
3788
+ }
3789
+ return $protected;
3790
+ }
3791
+ add_filter( 'is_protected_meta', 'yturbo_hide_custom_fields', 10, 2 );
3792
+ //скрываем произвольные поля плагина end