RSS for Yandex Turbo - Version 1.23

Version Description

  • , .
  • -.
  • .
  • -.
Download this release

Release Info

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

Code changes from version 1.22 to 1.23

Files changed (3) hide show
  1. inc/yturbo-css.css +14 -2
  2. readme.txt +10 -3
  3. rss-for-yandex-turbo.php +63 -21
inc/yturbo-css.css CHANGED
@@ -60,7 +60,7 @@ td table {
60
  }
61
  .about li {
62
  list-style-type: square;
63
- margin: 0px 0px 3px 35px;
64
  }
65
  .types {
66
  margin-bottom: 6px;
@@ -145,4 +145,16 @@ td table {
145
  .xyztabs__caption .active {font-weight: 400;line-height: initial;}
146
  }
147
 
148
- .tdcheckbox {padding-top: 15px!important;}
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
61
  .about li {
62
  list-style-type: square;
63
+ margin: 5px 0px 3px 35px;
64
  }
65
  .types {
66
  margin-bottom: 6px;
145
  .xyztabs__caption .active {font-weight: 400;line-height: initial;}
146
  }
147
 
148
+ .tdcheckbox {padding-top: 15px!important;}
149
+
150
+ .new {
151
+ color: #fff;
152
+ background-color: #008ec2;
153
+ border-radius: 6px;
154
+ display: inline-block;
155
+ padding-left: 4px;
156
+ padding-right: 4px;
157
+ text-align: center;
158
+ font-size: 10px;
159
+ vertical-align: super;
160
+ }
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === RSS for Yandex Turbo ===
2
  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.1
7
  Requires PHP: 5.3
8
- Stable tag: 1.22
9
 
10
  Создание RSS-ленты для сервиса Яндекс.Турбо.
11
 
@@ -352,6 +352,13 @@ add_filter('yturbo_the_content', 'yturbo_replace_src_links'); `
352
 
353
  == Changelog ==
354
 
 
 
 
 
 
 
 
355
  = 1.22 =
356
 
357
  * исправлены заголовки SEO-плагинов для произвольных типов записей.
1
  === RSS for Yandex Turbo ===
2
  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.2.3
7
  Requires PHP: 5.3
8
+ Stable tag: 1.23
9
 
10
  Создание RSS-ленты для сервиса Яндекс.Турбо.
11
 
352
 
353
  == Changelog ==
354
 
355
+ = 1.23 =
356
+
357
+ * исправлена ошибка с видео, вставленным в гутенберге.
358
+ * в контенте записей теперь выполняются гутенберг-блоки.
359
+ * исправлена ошибка с неработающим поиском.
360
+ * в похожих записях теперь выводится записи только из той же под-рубрики.
361
+
362
  = 1.22 =
363
 
364
  * исправлены заголовки SEO-плагинов для произвольных типов записей.
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.22
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.22' ) {
17
  yturbo_set_new_options();
18
  }
19
  }
@@ -122,7 +122,7 @@ function yturbo_set_new_options() {
122
  $yturbo_options['yttitle'] = yturbo_remove_emoji(strip_tags($yturbo_options['yttitle']));
123
  $yturbo_options['ytdescription'] = yturbo_remove_emoji(strip_tags($yturbo_options['ytdescription']));
124
 
125
- $yturbo_options['version'] = '1.22';
126
  update_option('yturbo_options', $yturbo_options);
127
  }
128
  //функция установки новых опций при обновлении плагина у пользователей end
@@ -130,7 +130,7 @@ function yturbo_set_new_options() {
130
  //функция установки значений по умолчанию при активации плагина begin
131
  function yturbo_init() {
132
  $yturbo_options = array();
133
- $yturbo_options['version'] = '1.22';
134
  $yturbo_options['ytrssname'] = 'turbo';
135
  $yturbo_options['yttitle'] = yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title')));
136
  $yturbo_options['ytlink'] = get_bloginfo_rss('url');
@@ -318,9 +318,9 @@ function yturbo_files_admin($hook_suffix) {
318
  wp_enqueue_script('yturbo-textillate');
319
  wp_register_style('yturbo-animate', $purl . '/inc/animate.min.css');
320
  wp_enqueue_style('yturbo-animate');
321
- wp_register_script('yturbo-script', $purl . '/inc/yturbo-script.js', array(), '1.22');
322
  wp_enqueue_script('yturbo-script');
323
- wp_register_style('yturbo-css', $purl . '/inc/yturbo-css.css', array(), '1.22');
324
  wp_enqueue_style('yturbo-css');
325
  }
326
  }
@@ -1893,6 +1893,7 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
1893
  <li><a target="_blank" href="https://ru.wordpress.org/plugins/today-yesterday-dates/">Today-Yesterday Dates</a> - <?php _e('относительные даты для записей за сегодня и вчера.', 'rss-for-yandex-turbo'); ?> </li>
1894
  <li><a target="_blank" href="https://ru.wordpress.org/plugins/truncate-comments/">Truncate Comments</a> - <?php _e('плагин скрывает длинные комментарии js-скриптом (в стиле Яндекса или Амазона).', 'rss-for-yandex-turbo'); ?> </li>
1895
  <li><a target="_blank" href="https://ru.wordpress.org/plugins/easy-yandex-share/">Easy Yandex Share</a> - <?php _e('продвинутый вывод блока "Яндекс.Поделиться".', 'rss-for-yandex-turbo'); ?></li>
 
1896
 
1897
  </ul>
1898
  </div>
@@ -2302,7 +2303,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2302
  <?php if ($ytmediascope) { ?><turbo:analytics id="<?php echo $ytmediascope; ?>" type="Mediascope"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2303
  <?php do_action( 'yturbo_ads_header' ); echo yturbo_turbo_ads(); ?>
2304
  <language><?php echo $ytlanguage; ?></language>
2305
- <generator>RSS for Yandex Turbo v1.22 (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
2306
  <?php while($query->have_posts()) : $query->the_post(); ?>
2307
  <?php $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true); ?>
2308
  <?php if ($ytremoveturbo != 'enabled' && $ytremove != 'yes') { ?>
@@ -2373,10 +2374,21 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2373
  $pattern = "/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i";
2374
  $replacement = '<img$3>';
2375
  $content = preg_replace($pattern, $replacement, $content);
 
 
 
 
 
 
 
 
 
 
 
2376
 
2377
- //удаляем <figure> вокруг iframe с видео (яндекс такое не понимает)
2378
- $pattern = "/<figure(.*?)>\n(.*?)<iframe(.*?)>(.*?)<\/figure>/i";
2379
- $replacement = '<iframe$3></iframe>';
2380
  $content = preg_replace($pattern, $replacement, $content);
2381
 
2382
  //добавляем alt если его вообще нет в теге img
@@ -2418,18 +2430,18 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2418
  }
2419
 
2420
  $purl = plugins_url('', __FILE__);
 
 
 
 
 
 
2421
  //формируем video для mp4 файлов согласно документации яндекса (классический редактор)
2422
  $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'video\');</script><![endif]-->', '', $content);
2423
- $pattern = "/<video(.*?)><source(.*?)src=\"(.*?).mp4(.*?)\"(.*?)\/>(.*?)<\/video>/i";
2424
  $replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2425
  $content = preg_replace($pattern, $replacement, $content);
2426
 
2427
- //формируем video для mp4 файлов согласно документации яндекса (гутенберг)
2428
- $pattern = "/<figure class=\"wp-block-video\"><video(.*?)src=\"(.*?).mp4\"(.*?)><\/video>(.*?)<\/figure>/i";
2429
- if ($ytfigcaption == 'Отключить описания') {$replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';}
2430
- if ($ytfigcaption != 'Отключить описания') {$replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" />$4</figure>';}
2431
- $content = preg_replace($pattern, $replacement, $content);
2432
-
2433
  //удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
2434
  if (preg_match_all("/<figure><img(.*?)>(.*?)<\/figure>/i", $content, $res)) {
2435
  $i = 0;
@@ -2457,6 +2469,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2457
  add_shortcode('gallery', 'gallery_shortcode');
2458
  add_filter( 'post_gallery', 'yturbo_gallery', 10, 2 );
2459
  $content = do_shortcode($content);
 
2460
  }
2461
 
2462
  $ytad4meta = get_post_meta($post->ID, 'ytad4meta', true);
@@ -2579,14 +2592,20 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
2579
  if ( $ytrelated=='enabled' ) {
2580
 
2581
  $tempID = get_the_ID();
 
 
2582
  if ($ytrelatedcache == 'enabled') {$rcontent = get_transient('related-' . $tempID);}
2583
 
2584
  if(!$rcontent) {
2585
  $cats = array();
2586
- foreach (get_the_category(get_the_ID()) as $c) {
2587
- $cat = get_category($c);
2588
  array_push($cats, $cat->cat_ID);
 
 
 
2589
  }
 
2590
  $cur_post_id = array();
2591
  array_push($cur_post_id, get_the_ID());
2592
 
@@ -3028,6 +3047,23 @@ function yturbo_gallery( $output, $attr) {
3028
  }
3029
  //функция преобразования стандартных галерей движка в турбо-галереи end
3030
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3031
  //функции открытия и закрытия комментариев begin
3032
  function yturbo_comments($comment, $args, $depth) {
3033
  $yturbo_options = get_option('yturbo_options');
@@ -3238,6 +3274,12 @@ function yturbo_widget_feedback() {
3238
  function yturbo_strip_shortcodes( $content ) {
3239
  $yturbo_options = get_option('yturbo_options');
3240
 
 
 
 
 
 
 
3241
  if ($yturbo_options['ytexcludeshortcodes'] == 'disabled' or !$yturbo_options['ytexcludeshortcodeslist']) return $content;
3242
 
3243
  global $shortcode_tags;
@@ -3308,8 +3350,8 @@ function yturbo_build_template( $post_content ) {
3308
  function yturbo_search_widget() {
3309
  $yturbo_options = get_option('yturbo_options');
3310
 
3311
- $url = get_bloginfo('url') . '/?s={text}';
3312
- $content = PHP_EOL.'<form action="'. $url . '" method="GET"><input type="search" name="text" placeholder="' . $yturbo_options['ytsearchplaceholder'] . '" /></form>'.PHP_EOL;
3313
 
3314
  return $content;
3315
  }
3
  Plugin Name: RSS for Yandex Turbo
4
  Plugin URI: https://wordpress.org/plugins/rss-for-yandex-turbo/
5
  Description: Создание RSS-ленты для сервиса Яндекс.Турбо.
6
+ Version: 1.23
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.23' ) {
17
  yturbo_set_new_options();
18
  }
19
  }
122
  $yturbo_options['yttitle'] = yturbo_remove_emoji(strip_tags($yturbo_options['yttitle']));
123
  $yturbo_options['ytdescription'] = yturbo_remove_emoji(strip_tags($yturbo_options['ytdescription']));
124
 
125
+ $yturbo_options['version'] = '1.23';
126
  update_option('yturbo_options', $yturbo_options);
127
  }
128
  //функция установки новых опций при обновлении плагина у пользователей end
130
  //функция установки значений по умолчанию при активации плагина begin
131
  function yturbo_init() {
132
  $yturbo_options = array();
133
+ $yturbo_options['version'] = '1.23';
134
  $yturbo_options['ytrssname'] = 'turbo';
135
  $yturbo_options['yttitle'] = yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title')));
136
  $yturbo_options['ytlink'] = get_bloginfo_rss('url');
318
  wp_enqueue_script('yturbo-textillate');
319
  wp_register_style('yturbo-animate', $purl . '/inc/animate.min.css');
320
  wp_enqueue_style('yturbo-animate');
321
+ wp_register_script('yturbo-script', $purl . '/inc/yturbo-script.js', array(), '1.23');
322
  wp_enqueue_script('yturbo-script');
323
+ wp_register_style('yturbo-css', $purl . '/inc/yturbo-css.css', array(), '1.23');
324
  wp_enqueue_style('yturbo-css');
325
  }
326
  }
1893
  <li><a target="_blank" href="https://ru.wordpress.org/plugins/today-yesterday-dates/">Today-Yesterday Dates</a> - <?php _e('относительные даты для записей за сегодня и вчера.', 'rss-for-yandex-turbo'); ?> </li>
1894
  <li><a target="_blank" href="https://ru.wordpress.org/plugins/truncate-comments/">Truncate Comments</a> - <?php _e('плагин скрывает длинные комментарии js-скриптом (в стиле Яндекса или Амазона).', 'rss-for-yandex-turbo'); ?> </li>
1895
  <li><a target="_blank" href="https://ru.wordpress.org/plugins/easy-yandex-share/">Easy Yandex Share</a> - <?php _e('продвинутый вывод блока "Яндекс.Поделиться".', 'rss-for-yandex-turbo'); ?></li>
1896
+ <li style="margin: 3px 0px 3px 35px;"><a target="_blank" href="https://ru.wordpress.org/plugins/html5-cumulus/">HTML5 Cumulus</a> <span class="new">new</span> - <?php _e('современная (HTML5) версия классического плагина "WP-Cumulus".', 'rss-for-yandex-turbo'); ?></li>
1897
 
1898
  </ul>
1899
  </div>
2303
  <?php if ($ytmediascope) { ?><turbo:analytics id="<?php echo $ytmediascope; ?>" type="Mediascope"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2304
  <?php do_action( 'yturbo_ads_header' ); echo yturbo_turbo_ads(); ?>
2305
  <language><?php echo $ytlanguage; ?></language>
2306
+ <generator>RSS for Yandex Turbo v1.23 (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
2307
  <?php while($query->have_posts()) : $query->the_post(); ?>
2308
  <?php $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true); ?>
2309
  <?php if ($ytremoveturbo != 'enabled' && $ytremove != 'yes') { ?>
2374
  $pattern = "/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i";
2375
  $replacement = '<img$3>';
2376
  $content = preg_replace($pattern, $replacement, $content);
2377
+
2378
+ //удаляем <figure> вокруг всех элементов (яндекс такое не понимает)
2379
+ $pattern = "/<figure(.*?)>/i";
2380
+ $replacement = '';
2381
+ $content = preg_replace($pattern, $replacement, $content);
2382
+ $pattern = "/<\/figure>/i";
2383
+ $replacement = '';
2384
+ $content = preg_replace($pattern, $replacement, $content);
2385
+ $pattern = "/<figcaption>(.*?)<\/figcaption>/i";
2386
+ $replacement = '';
2387
+ $content = preg_replace($pattern, $replacement, $content);
2388
 
2389
+ //преобразуем iframe с видео
2390
+ $pattern = "/<iframe title=\"(.*?)\"(.*?) allow=\"(.*?)\"(.*?)><\/iframe>/i";
2391
+ $replacement = '<iframe$2 allowfullscreen="true"></iframe>';
2392
  $content = preg_replace($pattern, $replacement, $content);
2393
 
2394
  //добавляем alt если его вообще нет в теге img
2430
  }
2431
 
2432
  $purl = plugins_url('', __FILE__);
2433
+
2434
+ //формируем video для mp4 файлов согласно документации яндекса (гутенберг)
2435
+ $pattern = "/<video(.*?)src=\"(.*?).mp4\"><\/video>/i";
2436
+ $replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2437
+ $content = preg_replace($pattern, $replacement, $content);
2438
+
2439
  //формируем video для mp4 файлов согласно документации яндекса (классический редактор)
2440
  $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'video\');</script><![endif]-->', '', $content);
2441
+ $pattern = "/<video class=\"wp-video-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp4(.*?)\"(.*?)\/>(.*?)<\/video>/i";
2442
  $replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2443
  $content = preg_replace($pattern, $replacement, $content);
2444
 
 
 
 
 
 
 
2445
  //удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
2446
  if (preg_match_all("/<figure><img(.*?)>(.*?)<\/figure>/i", $content, $res)) {
2447
  $i = 0;
2469
  add_shortcode('gallery', 'gallery_shortcode');
2470
  add_filter( 'post_gallery', 'yturbo_gallery', 10, 2 );
2471
  $content = do_shortcode($content);
2472
+ $content = do_gallery($content);
2473
  }
2474
 
2475
  $ytad4meta = get_post_meta($post->ID, 'ytad4meta', true);
2592
  if ( $ytrelated=='enabled' ) {
2593
 
2594
  $tempID = get_the_ID();
2595
+ $rcontent = '';
2596
+
2597
  if ($ytrelatedcache == 'enabled') {$rcontent = get_transient('related-' . $tempID);}
2598
 
2599
  if(!$rcontent) {
2600
  $cats = array();
2601
+ $childonly = array();
2602
+ foreach (get_the_category(get_the_ID()) as $cat) {
2603
  array_push($cats, $cat->cat_ID);
2604
+ if ($cat->category_parent !== 0 ) {
2605
+ array_push($childonly, $cat->cat_ID);
2606
+ }
2607
  }
2608
+ if ($childonly) $cats = $childonly;
2609
  $cur_post_id = array();
2610
  array_push($cur_post_id, get_the_ID());
2611
 
3047
  }
3048
  //функция преобразования стандартных галерей движка в турбо-галереи end
3049
 
3050
+ //функция преобразования стандартных галерей движка в турбо-галереи в гутенберге begin
3051
+ function do_gallery( $content ) {
3052
+
3053
+ //удаляем ul разметку галерей в гутенберге
3054
+ $pattern = "/<ul class=\"wp-block-gallery(.*?)>(.*?)<\/ul>/s";
3055
+ $replacement = '<div data-block="gallery">$2</div>';
3056
+ $content = preg_replace($pattern, $replacement, $content);
3057
+
3058
+ //удаляем li разметку галерей в гутенберге
3059
+ $pattern = "/<li class=\"blocks-gallery-item\">\n<figure><img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
3060
+ $replacement = '<img src="$1"/>';
3061
+ $content = preg_replace($pattern, $replacement, $content);
3062
+
3063
+ return $content;
3064
+ }
3065
+ //функция преобразования стандартных галерей движка в турбо-галереи в гутенберге end
3066
+
3067
  //функции открытия и закрытия комментариев begin
3068
  function yturbo_comments($comment, $args, $depth) {
3069
  $yturbo_options = get_option('yturbo_options');
3274
  function yturbo_strip_shortcodes( $content ) {
3275
  $yturbo_options = get_option('yturbo_options');
3276
 
3277
+ //выполняем блоки гутенберга
3278
+ global $wp_version;
3279
+ if ( version_compare( $wp_version, '5.0', '>=' ) ) {
3280
+ $content = do_blocks( $content );
3281
+ }
3282
+
3283
  if ($yturbo_options['ytexcludeshortcodes'] == 'disabled' or !$yturbo_options['ytexcludeshortcodeslist']) return $content;
3284
 
3285
  global $shortcode_tags;
3350
  function yturbo_search_widget() {
3351
  $yturbo_options = get_option('yturbo_options');
3352
 
3353
+ $url = get_bloginfo('url') . '/?s={s}';
3354
+ $content = PHP_EOL.'<form action="'. $url . '" method="GET"><input type="search" name="s" placeholder="' . $yturbo_options['ytsearchplaceholder'] . '" /></form>'.PHP_EOL;
3355
 
3356
  return $content;
3357
  }