Version Description
(04.02.2022) =
- ajax- ( ).
- .
- php 7.4 .
- .
- "yturbo_thumb_imgurl" "yturbo_thumb_caption" , , "" WordPress ( FAQ).
- .
- js- .
Download this release
Release Info
Developer | Flector |
Plugin | RSS for Yandex Turbo |
Version | 1.31 |
Comparing to | |
See all releases |
Code changes from version 1.30 to 1.31
- inc/Contents.php +1 -1
- inc/yturbo-css.css +15 -2
- inc/yturbo-script.js +1 -1
- readme.txt +45 -2
- rss-for-yandex-turbo.php +136 -86
inc/Contents.php
CHANGED
@@ -174,7 +174,7 @@ class YTurbo_Contents {
|
|
174 |
$class_patt = $tag_patt = $level_tags = array();
|
175 |
foreach( $tags as $tag ){
|
176 |
// class
|
177 |
-
if( $tag
|
178 |
$tag = substr( $tag, 1 );
|
179 |
$link = & $class_patt;
|
180 |
}
|
174 |
$class_patt = $tag_patt = $level_tags = array();
|
175 |
foreach( $tags as $tag ){
|
176 |
// class
|
177 |
+
if( $tag[0] == '.' ){
|
178 |
$tag = substr( $tag, 1 );
|
179 |
$link = & $class_patt;
|
180 |
}
|
inc/yturbo-css.css
CHANGED
@@ -136,6 +136,18 @@ td table {
|
|
136 |
.hide {
|
137 |
display:none;
|
138 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
.list_terms_scroll_wrapper {
|
140 |
overflow: auto;
|
141 |
min-height: 25px;
|
@@ -143,11 +155,12 @@ td table {
|
|
143 |
max-width: 650px;
|
144 |
vertical-align: middle;
|
145 |
border: 1px solid #c4bfbf;
|
146 |
-
padding: 3px
|
147 |
border-radius: 3px;
|
148 |
}
|
149 |
.list_terms_scroll_wrapper ul{
|
150 |
-
margin: 4px
|
|
|
151 |
}
|
152 |
.list_terms_scroll_wrapper li{
|
153 |
width: auto;
|
136 |
.hide {
|
137 |
display:none;
|
138 |
}
|
139 |
+
.list_terms_scroll_wrapper::-webkit-scrollbar {
|
140 |
+
width: 11px;
|
141 |
+
}
|
142 |
+
.list_terms_scroll_wrapper::-webkit-scrollbar-track {
|
143 |
+
background: #f0f0f1;
|
144 |
+
}
|
145 |
+
.list_terms_scroll_wrapper::-webkit-scrollbar-thumb {
|
146 |
+
background-color: #c4bfbf;
|
147 |
+
border-radius: 6px;
|
148 |
+
border: 3px solid #f0f0f1;
|
149 |
+
min-height: 50px;
|
150 |
+
}
|
151 |
.list_terms_scroll_wrapper {
|
152 |
overflow: auto;
|
153 |
min-height: 25px;
|
155 |
max-width: 650px;
|
156 |
vertical-align: middle;
|
157 |
border: 1px solid #c4bfbf;
|
158 |
+
padding: 3px 0px 2px 6px;
|
159 |
border-radius: 3px;
|
160 |
}
|
161 |
.list_terms_scroll_wrapper ul{
|
162 |
+
margin: 4px 0px 0 2px;
|
163 |
+
display: inline-block;
|
164 |
}
|
165 |
.list_terms_scroll_wrapper li{
|
166 |
width: auto;
|
inc/yturbo-script.js
CHANGED
@@ -679,7 +679,7 @@ jQuery(document).ready(function($) {
|
|
679 |
load_disallow(taxonomy);
|
680 |
$('#exclude_' + taxonomy).parent('.list_terms_scroll_wrapper').scroll(function() {
|
681 |
var parent = $(this),
|
682 |
-
content = parent.children('
|
683 |
if (parent.scrollTop() + parent.height() > content.height() - 10)
|
684 |
load_disallow(taxonomy);
|
685 |
})
|
679 |
load_disallow(taxonomy);
|
680 |
$('#exclude_' + taxonomy).parent('.list_terms_scroll_wrapper').scroll(function() {
|
681 |
var parent = $(this),
|
682 |
+
content = parent.children('ul');
|
683 |
if (parent.scrollTop() + parent.height() > content.height() - 10)
|
684 |
load_disallow(taxonomy);
|
685 |
})
|
readme.txt
CHANGED
@@ -3,9 +3,9 @@ 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.
|
7 |
Requires PHP: 5.3
|
8 |
-
Stable tag: 1.
|
9 |
|
10 |
Создание RSS-ленты для сервиса Яндекс.Турбо.
|
11 |
|
@@ -50,6 +50,16 @@ RSS-лента для Яндекс.Турбо никогда не сможет
|
|
50 |
|
51 |
Проверять RSS-ленты надо в Яндекс.Вебмастере, в разделе "Турбо-страницы\Источники". После добавления RSS-ленты Яндекс через пару минут выдаст свой "диагноз".
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
= Яндекс сильно нагружает сервер, что делать? =
|
54 |
|
55 |
Установите любой из плагинов кэширования. Они все умеют кэшировать RSS-ленты.
|
@@ -422,6 +432,29 @@ add_filter( 'yturbo_tags_list', 'my_custom_tags_list' );`
|
|
422 |
|
423 |
В список можно включать только парные теги (имеющие тег закрытия). Самозакрывающиеся теги фильтром будут проигнорированы.
|
424 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
|
426 |
== Screenshots ==
|
427 |
|
@@ -431,6 +464,16 @@ add_filter( 'yturbo_tags_list', 'my_custom_tags_list' );`
|
|
431 |
|
432 |
== Changelog ==
|
433 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
= 1.30 (19.04.2021) =
|
435 |
|
436 |
* исправлена js-уязвимость на странице настроек плагина.
|
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.9
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 1.31
|
9 |
|
10 |
Создание RSS-ленты для сервиса Яндекс.Турбо.
|
11 |
|
50 |
|
51 |
Проверять RSS-ленты надо в Яндекс.Вебмастере, в разделе "Турбо-страницы\Источники". После добавления RSS-ленты Яндекс через пару минут выдаст свой "диагноз".
|
52 |
|
53 |
+
= Нет ни одного элемента item, что делать? =
|
54 |
+
|
55 |
+
Убедитесь, что вы выбрали хотя бы один тип записей и не перемудрили с настройками исключений. Если проблема не в этом, то откройте RSS-ленту в браузере и визуально убедитесь, что она открывается. Зачастую начинающие вебмастера отключают RSS-ленты (вручную или плагинами типа Clearfy), а потом удивляются тому, что RSS-ленты на сайте не работают.
|
56 |
+
|
57 |
+
= Cодержимое Турбо-страницы не соответствует оригинальной версии (в содержимом тега <![CDATA[]]> найдены закодированные символы) =
|
58 |
+
|
59 |
+
Опытным путем установлено, что Яндекс ругается на стрелочки < и > (&lt; и &gt;), причем неважно закодированные они или нет. На вопрос, как это исправить Платоны посоветовали просто "забить". Цитата:
|
60 |
+
|
61 |
+
"Такие предупреждения носят, в первую очередь, информационный характер. Насколько я вижу, в обоих случаях эти символы отображаются на Турбо-страницах корректно, поэтому подобные предупреждения можно игнорировать, они никак не повлияют на Турбо-версии страниц вашего сайта в выдаче."
|
62 |
+
|
63 |
= Яндекс сильно нагружает сервер, что делать? =
|
64 |
|
65 |
Установите любой из плагинов кэширования. Они все умеют кэшировать RSS-ленты.
|
432 |
|
433 |
В список можно включать только парные теги (имеющие тег закрытия). Самозакрывающиеся теги фильтром будут проигнорированы.
|
434 |
|
435 |
+
= Как вывести изображение записи, записанное в произвольном поле? =
|
436 |
+
|
437 |
+
В некоторых темах (особенно старых) изображение записи может храниться в своем собственном произвольном поле. Чтобы вывести его на турбо-страницах надо использовать примерно такой код:
|
438 |
+
|
439 |
+
`function my_yturbo_thumb_imgurl($imgurl) {
|
440 |
+
//вместо 'url-image' подставьте название вашего произвольного
|
441 |
+
//поля с ссылкой на изображение
|
442 |
+
$imgurl = get_post_meta( get_the_ID(), 'url-image', true);
|
443 |
+
return $imgurl;
|
444 |
+
}
|
445 |
+
add_filter('yturbo_thumb_imgurl', 'my_yturbo_thumb_imgurl');
|
446 |
+
|
447 |
+
function my_yturbo_thumb_caption($caption) {
|
448 |
+
//вместо 'caption-image' подставьте название вашего произвольного
|
449 |
+
//поля, где хранится подпись к изображению
|
450 |
+
$caption = get_post_meta( get_the_ID(), 'caption-image', true);
|
451 |
+
return $caption;
|
452 |
+
}
|
453 |
+
add_filter('yturbo_thumb_caption', 'my_yturbo_thumb_caption');`
|
454 |
+
|
455 |
+
Подпись к изображению необязательна и не будет выведена, если ее нет.
|
456 |
+
|
457 |
+
Важно! Изображение из произвольного поля будет выводиться только, если включен вывод "Миниатюр в RSS" (любого размера, это не важно) и только если не установлено изображение через "родной" функционал WordPress.
|
458 |
|
459 |
== Screenshots ==
|
460 |
|
464 |
|
465 |
== Changelog ==
|
466 |
|
467 |
+
= 1.31 (04.02.2022) =
|
468 |
+
|
469 |
+
* исправлена ajax-подгрузка терминов таксономий (настройки исключений).
|
470 |
+
* в очередной раз переписаны регулярки обработки изображений.
|
471 |
+
* исправлена ошибка с выводом блока содержания на php 7.4 и выше.
|
472 |
+
* добавлен вывод подписи для главного изображения записи.
|
473 |
+
* добавлены фильтры "yturbo_thumb_imgurl" и "yturbo_thumb_caption" для вывода главного изображения записи в случае, если используется собственное произвольное поле для хранения изображения записи, а не "родной" функционал WordPress (читайте FAQ).
|
474 |
+
* исправление мелких ошибок.
|
475 |
+
* исправлены js-уязвимости на странице настроек плагина.
|
476 |
+
|
477 |
= 1.30 (19.04.2021) =
|
478 |
|
479 |
* исправлена js-уязвимость на странице настроек плагина.
|
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.
|
7 |
Author: Flector
|
8 |
Author URI: https://profiles.wordpress.org/flector#content-plugins
|
9 |
Text Domain: rss-for-yandex-turbo
|
@@ -20,14 +20,14 @@ function yturbo_add_notice_ads() {
|
|
20 |
->rawHtml(__('<p>Для плагина <strong>RSS for Yandex Turbo</strong> появилось премиум-дополнение <strong><a target="_blank" href="https://wpcase.ru/wpcase-turbo-ads/">WPCase: Turbo Ads</a></strong>, которое позволит <br />вам добавить на турбо-страницы неограниченное количество рекламных блоков в нужных вам местах.</p>', 'rss-for-yandex-turbo'))
|
21 |
->show();
|
22 |
}
|
23 |
-
add_action( 'admin_notices', 'yturbo_add_notice_ads' );
|
24 |
//вывод admin notice с рекламкой (для админов) end
|
25 |
|
26 |
//проверка версии плагина (запуск функции установки новых опций) begin
|
27 |
function yturbo_check_version() {
|
28 |
$yturbo_options = get_option('yturbo_options');
|
29 |
if (!isset($yturbo_options['version'])){$yturbo_options['version']='1.00';update_option('yturbo_options',$yturbo_options);}
|
30 |
-
if ( $yturbo_options['version'] != '1.
|
31 |
yturbo_set_new_options();
|
32 |
}
|
33 |
}
|
@@ -184,7 +184,7 @@ function yturbo_set_new_options() {
|
|
184 |
|
185 |
if (!isset($yturbo_options['ytextendedhtml'])) {$yturbo_options['ytextendedhtml']='disabled';}
|
186 |
|
187 |
-
$yturbo_options['version'] = '1.
|
188 |
update_option('yturbo_options', $yturbo_options);
|
189 |
}
|
190 |
//функция установки новых опций при обновлении плагина у пользователей end
|
@@ -192,7 +192,7 @@ function yturbo_set_new_options() {
|
|
192 |
//функция установки значений по умолчанию при активации плагина begin
|
193 |
function yturbo_init() {
|
194 |
$yturbo_options = array();
|
195 |
-
$yturbo_options['version'] = '1.
|
196 |
$yturbo_options['ytrssname'] = 'turbo';
|
197 |
$yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title'))));
|
198 |
$yturbo_options['ytlink'] = get_bloginfo_rss('url');
|
@@ -432,7 +432,7 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
|
|
432 |
|
433 |
$yturbo_options['yttype'] = '';
|
434 |
$checkboxes = isset($_POST['types']) ? $_POST['types'] : array();
|
435 |
-
foreach($checkboxes as $value) {$yturbo_options['yttype'] .= $value . ',';}
|
436 |
$yturbo_options['yttype'] = sanitize_text_field($yturbo_options['yttype']);
|
437 |
|
438 |
$yturbo_options['ytfigcaption'] = sanitize_text_field($_POST['ytfigcaption']);
|
@@ -545,12 +545,15 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
|
|
545 |
$taxonomies = get_taxonomies( array('public'=>true,'show_ui'=>true,), 'objects', 'and' );
|
546 |
foreach ($taxonomies as $taxonomy) {
|
547 |
$temp = $taxonomy->name . ':';
|
548 |
-
if ( isset($_POST['exclude-'.$taxonomy->name])
|
549 |
foreach ( $_POST['exclude-'.$taxonomy->name] as $exclude ) {
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
|
|
|
|
|
|
554 |
}
|
555 |
}
|
556 |
$yturbo_options['exclude-'.$taxonomy->name] = $temp;
|
@@ -601,9 +604,10 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
|
|
601 |
$yturbo_options['ytfeedbacktelegram'] = sanitize_text_field($_POST['ytfeedbacktelegram']);
|
602 |
|
603 |
if(isset($_POST['ytexcludeshortcodes'])){$yturbo_options['ytexcludeshortcodes'] = sanitize_text_field($_POST['ytexcludeshortcodes']);}else{$yturbo_options['ytexcludeshortcodes'] = 'disabled';}
|
|
|
604 |
$yturbo_options['ytexcludeshortcodeslist'] = '';
|
605 |
$checkboxes = isset($_POST['shortcodes']) ? $_POST['shortcodes'] : array();
|
606 |
-
foreach($checkboxes as $value) {$yturbo_options['ytexcludeshortcodeslist'] .= $value . ',';}
|
607 |
|
608 |
$types = explode(",", $yturbo_options['yttype']);
|
609 |
$types = array_diff($types, array(''));
|
@@ -628,7 +632,7 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
|
|
628 |
if(isset($_POST['yttoc'])){$yturbo_options['yttoc'] = sanitize_text_field($_POST['yttoc']);}else{$yturbo_options['yttoc'] = 'disabled';}
|
629 |
$yturbo_options['yttype2'] = '';
|
630 |
$checkboxes = isset($_POST['types2']) ? $_POST['types2'] : array();
|
631 |
-
foreach($checkboxes as $value) {$yturbo_options['yttype2'] .= $value . ',';}
|
632 |
$yturbo_options['yttype2'] = sanitize_text_field($yturbo_options['yttype2']);
|
633 |
$yturbo_options['yttoczag'] = sanitize_text_field($_POST['yttoczag']);
|
634 |
$yturbo_options['yttocmesto'] = sanitize_text_field($_POST['yttocmesto']);
|
@@ -709,7 +713,7 @@ if (closedonat == 'yes') {
|
|
709 |
|
710 |
<div class="xyztabs">
|
711 |
|
712 |
-
<input style="left:-2000px;position: absolute;" type="text" name="yttab" id="yttab" size="30" value="<?php echo stripslashes($yturbo_options['yttab']); ?>" />
|
713 |
<ul class="xyztabs__caption">
|
714 |
<li <?php if($yturbo_options['yttab']=='RSS-лента'){echo 'class="active"';} ?>><?php _e('RSS-лента', 'rss-for-yandex-turbo'); ?></li>
|
715 |
<li <?php if($yturbo_options['yttab']=='Оформление'){echo 'class="active"';} ?>><?php _e('Оформление', 'rss-for-yandex-turbo'); ?></li>
|
@@ -744,7 +748,7 @@ if (closedonat == 'yes') {
|
|
744 |
<tr class="trbordertop">
|
745 |
<th><?php _e('Заголовок:', 'rss-for-yandex-turbo'); ?></th>
|
746 |
<td>
|
747 |
-
<input type="text" name="yttitle" size="40" value="<?php echo stripslashes($yturbo_options['yttitle']); ?>" />
|
748 |
<br /><small><?php _e('Название RSS-ленты. Если экспортируется содержимое всего сайта, укажите название сайта.', 'rss-for-yandex-turbo'); ?><br />
|
749 |
<?php _e('Если экспортируется раздел сайта, укажите только название раздела.', 'rss-for-yandex-turbo'); ?><br />
|
750 |
</small>
|
@@ -753,14 +757,14 @@ if (closedonat == 'yes') {
|
|
753 |
<tr>
|
754 |
<th><?php _e('Ссылка:', 'rss-for-yandex-turbo'); ?></th>
|
755 |
<td>
|
756 |
-
<input type="text" name="ytlink" size="40" value="<?php echo stripslashes($yturbo_options['ytlink']); ?>" />
|
757 |
<br /><small><?php _e('URL сайта, данные которого экспортируются в RSS-ленту.', 'rss-for-yandex-turbo'); ?> </small>
|
758 |
</td>
|
759 |
</tr>
|
760 |
<tr>
|
761 |
<th><?php _e('Описание:', 'rss-for-yandex-turbo'); ?></th>
|
762 |
<td>
|
763 |
-
<input type="text" name="ytdescription" size="40" value="<?php echo stripslashes($yturbo_options['ytdescription']); ?>" />
|
764 |
<br /><small><?php _e('Описание RSS-ленты одним предложением. Не используйте HTML-разметку.', 'rss-for-yandex-turbo'); ?> </small>
|
765 |
</td>
|
766 |
</tr>
|
@@ -1133,8 +1137,8 @@ if (closedonat == 'yes') {
|
|
1133 |
<tr class="ytsharechildtr" <?php if ($yturbo_options['ytshare'] == 'disabled') echo 'style="display:none;"'; ?>>
|
1134 |
<th><?php _e('Порядок:', 'rss-for-yandex-turbo'); ?></th>
|
1135 |
<td>
|
1136 |
-
<input style="" type="text" name="ytnetw" id="ytnetw" size="62" value="<?php echo $yturbo_options['ytnetw']; ?>" disabled="disabled" />
|
1137 |
-
<input type="text" style="display:none;" name="ytnetwspan" id="ytnetwspan" value="<?php echo $yturbo_options['ytnetw']; ?>"/>
|
1138 |
<br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
|
1139 |
</td>
|
1140 |
</tr>
|
@@ -1247,8 +1251,8 @@ if (closedonat == 'yes') {
|
|
1247 |
<tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
|
1248 |
<th><?php _e('Порядок кнопок:', 'rss-for-yandex-turbo'); ?></th>
|
1249 |
<td>
|
1250 |
-
<input style="" type="text" name="ytfeedbacknetw" id="ytfeedbacknetw" size="62" value="<?php echo $yturbo_options['ytfeedbacknetw']; ?>" disabled="disabled" />
|
1251 |
-
<input type="text" style="display:none;" name="ytfeedbacknetwspan" id="ytfeedbacknetwspan" value="<?php echo $yturbo_options['ytfeedbacknetw']; ?>"/>
|
1252 |
<br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
|
1253 |
</td>
|
1254 |
</tr>
|
@@ -1319,7 +1323,7 @@ if (closedonat == 'yes') {
|
|
1319 |
<tr class="ytfeedbackmailtr" style="display:none;">
|
1320 |
<th><?php _e('E-mail:', 'rss-for-yandex-turbo'); ?></th>
|
1321 |
<td>
|
1322 |
-
<input type="text" name="ytfeedbackmail" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackmail'])) ?>" />
|
1323 |
<br /><small><?php _e('Укажите адрес e-mail (пример: <tt>mail@test.ru</tt>).', 'rss-for-yandex-turbo'); ?></small>
|
1324 |
</td>
|
1325 |
</tr>
|
@@ -1509,8 +1513,8 @@ if (closedonat == 'yes') {
|
|
1509 |
<tr class="ytratingchildtr" <?php if ($yturbo_options['ytrating'] == 'disabled') echo 'style="display:none;"'; ?>>
|
1510 |
<th><?php _e('Диапазон оценок:', 'rss-for-yandex-turbo'); ?></th>
|
1511 |
<td>
|
1512 |
-
<?php _e('От:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;margin-right:10px;" name="ytratingmin" type="number" min="1" max="5" step="0.01" value="<?php echo $yturbo_options['ytratingmin']; ?>" />
|
1513 |
-
<?php _e('До:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;" name="ytratingmax" type="number" min="1" max="5" step="0.01" value="<?php echo $yturbo_options['ytratingmax']; ?>" />
|
1514 |
<br /><small><?php _e('Укажите минимальную и максимальную оценку.', 'rss-for-yandex-turbo'); ?><br />
|
1515 |
<?php _e('Каждой записи будет присвоена случайная оценка в указанном диапазоне.', 'rss-for-yandex-turbo'); ?><br />
|
1516 |
<?php _e('Этот рейтинг будет выведен сразу после заголовка с миниатюрой записи.', 'rss-for-yandex-turbo'); ?><br />
|
@@ -1887,7 +1891,7 @@ if (closedonat == 'yes') {
|
|
1887 |
if ( $exclude_term_ids ) {
|
1888 |
$terms = get_terms( $taxonomy->name, array('include'=>$exclude_term_ids,'hide_empty'=>false,'hierarchical'=>false) );
|
1889 |
foreach ( $terms as $term ) {
|
1890 |
-
echo "<li><input type='checkbox' name='exclude-{$taxonomy->name}[{$term->
|
1891 |
}
|
1892 |
}
|
1893 |
?>
|
@@ -2076,9 +2080,9 @@ if (closedonat == 'yes') {
|
|
2076 |
<tr class="ytexcludetagslisttr" <?php if ($yturbo_options['ytexcludetags'] == 'disabled') echo 'style="display:none;"'; ?>>
|
2077 |
<th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
|
2078 |
<td style="padding-top: 5px;">
|
2079 |
-
<input style="display:none;" name="ytexcludetagslist-input" class="ytexcludetagslist-input" placeholder="" value="<?php echo stripslashes($yturbo_options['ytexcludetagslist']); ?>" />
|
2080 |
<input type="hidden" id="tags-list" value="<?php echo yturbo_tags_list(); ?>" />
|
2081 |
-
<input type="hidden" name="ytexcludetagslist" id="ytexcludetagslist" value="<?php echo stripslashes($yturbo_options['ytexcludetagslist']); ?>" />
|
2082 |
<small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
|
2083 |
<?php _e('Самозакрывающиеся теги вроде <tt><br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?><br />
|
2084 |
<?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
|
@@ -2095,9 +2099,9 @@ if (closedonat == 'yes') {
|
|
2095 |
<tr class="ytexcludetagslist2tr" <?php if ($yturbo_options['ytexcludetags2'] == 'disabled') echo 'style="display:none;"'; ?>>
|
2096 |
<th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
|
2097 |
<td style="padding-top: 5px;">
|
2098 |
-
<input style="display:none;" name="ytexcludetagslist-input2" class="ytexcludetagslist-input2" placeholder="" value="<?php echo stripslashes($yturbo_options['ytexcludetagslist2']); ?>" />
|
2099 |
<input type="hidden" id="tags-list2" value="<?php echo yturbo_tags_list(); ?>" />
|
2100 |
-
<input type="hidden" name="ytexcludetagslist2" id="ytexcludetagslist2" value="<?php echo stripslashes($yturbo_options['ytexcludetagslist2']); ?>" />
|
2101 |
<small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
|
2102 |
<?php _e('Самозакрывающиеся теги вроде <tt><br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?> <br />
|
2103 |
<?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
|
@@ -2291,7 +2295,7 @@ function yturbo_save_metabox( $post_id ) {
|
|
2291 |
}
|
2292 |
|
2293 |
if(isset($_POST['ytextendedhtmlmeta'])){
|
2294 |
-
$selected = $_POST['ytextendedhtmlmeta'];
|
2295 |
update_post_meta($post_id, 'ytextendedhtmlmeta', $selected);
|
2296 |
}
|
2297 |
}
|
@@ -2625,7 +2629,7 @@ if ( isset($_GET['lenta']) && $_GET['lenta'] == 'trash' ) {
|
|
2625 |
}
|
2626 |
|
2627 |
//если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
|
2628 |
-
if($yttype[0]
|
2629 |
|
2630 |
$args = array(
|
2631 |
'paged' => $paged,
|
@@ -2653,9 +2657,9 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
|
|
2653 |
version="2.0">
|
2654 |
<channel>
|
2655 |
<turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
|
2656 |
-
<title><?php echo stripslashes($yttitle); ?></title>
|
2657 |
<link><?php echo esc_html($ytlink); ?></link>
|
2658 |
-
<description><?php echo stripslashes($ytdescription); ?></description>
|
2659 |
<?php if ($ytmetrika) { ?><turbo:analytics id="<?php echo $ytmetrika; ?>" type="Yandex"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
|
2660 |
<?php if ($ytliveinternet) { ?><turbo:analytics type="LiveInternet"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
|
2661 |
<?php if ($ytgoogle) { ?><turbo:analytics id="<?php echo $ytgoogle; ?>" type="Google"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
|
@@ -2730,75 +2734,84 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
|
|
2730 |
//удаляем unicode-символы (как невалидные в rss)
|
2731 |
$content = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/u', '', $content);
|
2732 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2733 |
//удаляем разметку движка при использовании шорткода с подписью [caption] (в html4 темах - classic editor)
|
2734 |
-
$pattern = "/<div
|
2735 |
-
$replacement = '<
|
2736 |
$content = preg_replace($pattern, $replacement, $content);
|
2737 |
//разметка описания на случай, если тег div удаляется в настройках плагина
|
2738 |
-
$pattern = "/<p
|
2739 |
-
$replacement = '<
|
2740 |
$content = preg_replace($pattern, $replacement, $content);
|
2741 |
|
2742 |
//удаляем разметку движка при использовании шорткода с подписью [caption] (в html5 темах - classic editor)
|
2743 |
-
$pattern = "/<figure
|
2744 |
-
$replacement = '<
|
2745 |
$content = preg_replace($pattern, $replacement, $content);
|
2746 |
|
2747 |
//удаляем <figure>, если они изначально присутствуют в контенте записи (с указанным caption - gutenberg)
|
2748 |
-
$pattern = "/<figure(.*?)>(.*?)<img
|
2749 |
-
$replacement = '<
|
2750 |
$content = preg_replace($pattern, $replacement, $content);
|
2751 |
|
2752 |
//удаляем <figure>, если они изначально присутствуют в контенте записи (без caption - gutenberg)
|
2753 |
$pattern = "/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i";
|
2754 |
-
$replacement = '<
|
2755 |
$content = preg_replace($pattern, $replacement, $content);
|
2756 |
|
2757 |
-
//удаляем <figure> вокруг всех элементов (яндекс такое не понимает)
|
2758 |
$pattern = "/<figure(.*?)>/i";
|
2759 |
$replacement = '';
|
2760 |
$content = preg_replace($pattern, $replacement, $content);
|
2761 |
$pattern = "/<\/figure>/i";
|
2762 |
$replacement = '';
|
2763 |
$content = preg_replace($pattern, $replacement, $content);
|
2764 |
-
$pattern = "/<figcaption>(.*?)<\/figcaption>/i";
|
2765 |
$replacement = '';
|
2766 |
$content = preg_replace($pattern, $replacement, $content);
|
2767 |
|
2768 |
-
|
2769 |
-
$pattern = "/<
|
2770 |
-
$replacement = '<
|
2771 |
$content = preg_replace($pattern, $replacement, $content);
|
2772 |
|
2773 |
-
|
2774 |
-
$pattern = "/<
|
2775 |
-
$replacement = '<
|
2776 |
$content = preg_replace($pattern, $replacement, $content);
|
2777 |
|
2778 |
-
|
2779 |
-
$pattern = "/<
|
2780 |
-
$replacement = '<
|
2781 |
-
$content = preg_replace(
|
2782 |
|
2783 |
-
//обрабатываем img теги и оборачиваем их тегами figure
|
2784 |
-
if ($ytfigcaption == 'Использовать подписи') {
|
2785 |
-
//если описания нет
|
2786 |
-
$pattern = "/<img data-caption=\"\" src=\"(.*?)\" \/>/i";
|
2787 |
-
$replacement = '<figure><img src="$1" /></figure>';
|
2788 |
-
$content = preg_replace($pattern, $replacement, $content);
|
2789 |
-
//если описание есть
|
2790 |
-
$pattern = "/<img data-caption=\"(.*?)\" src=\"(.*?)\" \/>/i";
|
2791 |
-
$replacement = '<figure><img src="$2" /><figcaption>$1</figcaption></figure>';
|
2792 |
-
$content = preg_replace($pattern, $replacement, $content);
|
2793 |
-
}
|
2794 |
if ($ytfigcaption == 'Отключить описания') {
|
2795 |
-
$pattern = "/<
|
2796 |
-
$replacement = '
|
2797 |
$content = preg_replace($pattern, $replacement, $content);
|
2798 |
}
|
2799 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2800 |
$purl = plugins_url('', __FILE__);
|
2801 |
|
|
|
|
|
|
|
|
|
|
|
2802 |
//формируем video для mp4 файлов согласно документации яндекса (гутенберг)
|
2803 |
$pattern = "/<video(.*?)src=\"(.*?).mp4\"><\/video>/i";
|
2804 |
$replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
|
@@ -2806,6 +2819,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
|
|
2806 |
|
2807 |
//формируем video для mp4 файлов согласно документации яндекса (классический редактор)
|
2808 |
$content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'video\');</script><![endif]-->', '', $content);
|
|
|
2809 |
$pattern = "/<video class=\"wp-video-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp4(.*?)\"(.*?)\/>(.*?)<\/video>/i";
|
2810 |
$replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
|
2811 |
$content = preg_replace($pattern, $replacement, $content);
|
@@ -2822,7 +2836,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
|
|
2822 |
$content = preg_replace($pattern, $replacement, $content);
|
2823 |
|
2824 |
//удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
|
2825 |
-
if (preg_match_all("/<figure
|
2826 |
$i = 0;
|
2827 |
if ($ytrelated=='enabled' && $ytrelatednumber && $ytrelatedinfinity != 'enabled') $i = $ytrelatednumber;
|
2828 |
if ($ytthumbnail=='enabled' && has_post_thumbnail(get_the_ID())) $i++;
|
@@ -2856,11 +2870,34 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
|
|
2856 |
$content = apply_filters( 'yturbo_add_contents', $content );
|
2857 |
?>
|
2858 |
<header>
|
2859 |
-
<?php
|
2860 |
-
|
2861 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2862 |
<h1><?php echo get_the_title_rss(); ?></h1>
|
2863 |
-
<?php if ($ytselectmenu!='Не использовать') {
|
2864 |
echo '<menu>'.PHP_EOL;
|
2865 |
$menu = wp_get_nav_menu_object( $ytselectmenu );
|
2866 |
$menu_items = wp_get_nav_menu_items($menu->term_id);
|
@@ -3190,7 +3227,7 @@ echo '</ul>';
|
|
3190 |
}
|
3191 |
else :
|
3192 |
|
3193 |
-
if($yttype[0]
|
3194 |
$args = array('ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytnumber,'tax_query' => $tax_query,
|
3195 |
'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),
|
3196 |
array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
|
@@ -3309,6 +3346,7 @@ function yturbo_strip_attributes( $s, $allowedattr = array() ) {
|
|
3309 |
$rpl = str_replace($r[1], $attrs, $tag);
|
3310 |
//заменяем одинарные кавычки на двойные
|
3311 |
$rpl = str_replace("'", "\"", $rpl);
|
|
|
3312 |
//добавляем закрывающий символ / если он отсутствует
|
3313 |
$rpl = str_replace("\">", "\" />", $rpl);
|
3314 |
//добавляем пробел перед закрывающим символом /
|
@@ -3413,21 +3451,32 @@ function yturbo_gallery( $output, $attr ) {
|
|
3413 |
//функция преобразования стандартных галерей движка в турбо-галереи в гутенберге begin
|
3414 |
function yturbo_do_gallery( $content ) {
|
3415 |
|
3416 |
-
//удаляем ul разметку галерей в гутенберге (wordpress 5.
|
3417 |
-
$pattern = "/<ul class=\"
|
3418 |
$replacement = '<div data-block="gallery">$2</div>';
|
3419 |
$content = preg_replace($pattern, $replacement, $content);
|
3420 |
|
3421 |
-
//удаляем ul разметку галерей в гутенберге (wordpress 5.
|
3422 |
-
$pattern = "/<ul class=\"
|
3423 |
$replacement = '<div data-block="gallery">$2</div>';
|
3424 |
$content = preg_replace($pattern, $replacement, $content);
|
3425 |
|
3426 |
//удаляем li разметку галерей в гутенберге
|
3427 |
-
$pattern = "/<li class=\"blocks-gallery-item\">\n<figure
|
3428 |
-
$replacement = '<img src="$
|
|
|
|
|
|
|
|
|
3429 |
$content = preg_replace($pattern, $replacement, $content);
|
3430 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3431 |
return $content;
|
3432 |
}
|
3433 |
//функция преобразования стандартных галерей движка в турбо-галереи в гутенберге end
|
@@ -3581,7 +3630,7 @@ function yturbo_widget_feedback() {
|
|
3581 |
if ($yturbo_options['ytfeedbackcallback']) {
|
3582 |
$content .= '<div data-type="callback" data-send-to="'.$yturbo_options['ytfeedbackcallback'].'"';
|
3583 |
if ($yturbo_options['ytfeedbackcallback2'] && $yturbo_options['ytfeedbackcallback3']) {
|
3584 |
-
$content .= ' data-agreement-company="'.stripslashes($yturbo_options['ytfeedbackcallback2']).'" data-agreement-link="'.$yturbo_options['ytfeedbackcallback3'].'"';
|
3585 |
}
|
3586 |
}
|
3587 |
$content .= '></div>'.PHP_EOL;
|
@@ -3761,7 +3810,7 @@ function yturbo_toc( $content ) {
|
|
3761 |
'to_menu' => false,
|
3762 |
'title' => $yturbo_options['yttoczag'],
|
3763 |
'min_found' => $yturbo_options['yttocnumber'],
|
3764 |
-
'min_length' =>
|
3765 |
'page_url' => get_the_permalink(),
|
3766 |
'selectors' => $selectors,
|
3767 |
);
|
@@ -4011,6 +4060,7 @@ function yturbo_hide_custom_fields( $protected, $meta_key ){
|
|
4011 |
'ytrssenabled_meta_value',
|
4012 |
'template_meta',
|
4013 |
'custom_template',
|
|
|
4014 |
);
|
4015 |
if ( in_array($meta_key, $hide_meta_keys) ) {
|
4016 |
return true;
|
@@ -4046,8 +4096,8 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
|
|
4046 |
<turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
|
4047 |
<title><?php echo stripslashes($yturbo_options['yttitle']); ?></title>
|
4048 |
<link><?php echo esc_html($yturbo_options['ytlink']); ?></link>
|
4049 |
-
<description><?php echo stripslashes($yturbo_options['ytdescription']); ?></description>
|
4050 |
-
<language><?php echo $yturbo_options['ytlanguage']; ?></language>
|
4051 |
<generator>RSS for Yandex Turbo v<?php echo $yturbo_options['version']; ?> (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
|
4052 |
<?php if ( $yturbo_options['ytexcludeurlslist'] ) {
|
4053 |
$textAr = explode("\n", str_replace(array("\r\n", "\r"), "\n", $yturbo_options['ytexcludeurlslist']));
|
@@ -4139,7 +4189,7 @@ function yturbo_ajax_display_exclude_terms() {
|
|
4139 |
if ( ! isset($_REQUEST['taxonomy']) )
|
4140 |
return;
|
4141 |
|
4142 |
-
$taxonomy = (string) $_REQUEST['taxonomy'];
|
4143 |
|
4144 |
header("HTTP/1.1 200");
|
4145 |
header("Content-Type: text/html; charset=UTF-8");
|
@@ -4160,7 +4210,7 @@ function yturbo_ajax_display_exclude_terms() {
|
|
4160 |
'hide_empty' => false,
|
4161 |
'hierarchical' => false,
|
4162 |
'number' => 100,
|
4163 |
-
'offset' => $_REQUEST['offset']
|
4164 |
));
|
4165 |
|
4166 |
if ( ! $terms ) {
|
@@ -4169,7 +4219,7 @@ function yturbo_ajax_display_exclude_terms() {
|
|
4169 |
}
|
4170 |
|
4171 |
foreach ($terms as $term) {
|
4172 |
-
echo "<li><input type='checkbox' name='exclude-{$taxonomy}[{$term->
|
4173 |
}
|
4174 |
exit;
|
4175 |
}
|
3 |
Plugin Name: RSS for Yandex Turbo
|
4 |
Plugin URI: https://wordpress.org/plugins/rss-for-yandex-turbo/
|
5 |
Description: Создание RSS-ленты для сервиса Яндекс.Турбо.
|
6 |
+
Version: 1.31
|
7 |
Author: Flector
|
8 |
Author URI: https://profiles.wordpress.org/flector#content-plugins
|
9 |
Text Domain: rss-for-yandex-turbo
|
20 |
->rawHtml(__('<p>Для плагина <strong>RSS for Yandex Turbo</strong> появилось премиум-дополнение <strong><a target="_blank" href="https://wpcase.ru/wpcase-turbo-ads/">WPCase: Turbo Ads</a></strong>, которое позволит <br />вам добавить на турбо-страницы неограниченное количество рекламных блоков в нужных вам местах.</p>', 'rss-for-yandex-turbo'))
|
21 |
->show();
|
22 |
}
|
23 |
+
//add_action( 'admin_notices', 'yturbo_add_notice_ads' );
|
24 |
//вывод admin notice с рекламкой (для админов) end
|
25 |
|
26 |
//проверка версии плагина (запуск функции установки новых опций) begin
|
27 |
function yturbo_check_version() {
|
28 |
$yturbo_options = get_option('yturbo_options');
|
29 |
if (!isset($yturbo_options['version'])){$yturbo_options['version']='1.00';update_option('yturbo_options',$yturbo_options);}
|
30 |
+
if ( $yturbo_options['version'] != '1.31' ) {
|
31 |
yturbo_set_new_options();
|
32 |
}
|
33 |
}
|
184 |
|
185 |
if (!isset($yturbo_options['ytextendedhtml'])) {$yturbo_options['ytextendedhtml']='disabled';}
|
186 |
|
187 |
+
$yturbo_options['version'] = '1.31';
|
188 |
update_option('yturbo_options', $yturbo_options);
|
189 |
}
|
190 |
//функция установки новых опций при обновлении плагина у пользователей end
|
192 |
//функция установки значений по умолчанию при активации плагина begin
|
193 |
function yturbo_init() {
|
194 |
$yturbo_options = array();
|
195 |
+
$yturbo_options['version'] = '1.31';
|
196 |
$yturbo_options['ytrssname'] = 'turbo';
|
197 |
$yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title'))));
|
198 |
$yturbo_options['ytlink'] = get_bloginfo_rss('url');
|
432 |
|
433 |
$yturbo_options['yttype'] = '';
|
434 |
$checkboxes = isset($_POST['types']) ? $_POST['types'] : array();
|
435 |
+
foreach($checkboxes as $value) {$yturbo_options['yttype'] .= sanitize_text_field($value) . ',';}
|
436 |
$yturbo_options['yttype'] = sanitize_text_field($yturbo_options['yttype']);
|
437 |
|
438 |
$yturbo_options['ytfigcaption'] = sanitize_text_field($_POST['ytfigcaption']);
|
545 |
$taxonomies = get_taxonomies( array('public'=>true,'show_ui'=>true,), 'objects', 'and' );
|
546 |
foreach ($taxonomies as $taxonomy) {
|
547 |
$temp = $taxonomy->name . ':';
|
548 |
+
if ( isset($_POST['exclude-'.$taxonomy->name])) :
|
549 |
foreach ( $_POST['exclude-'.$taxonomy->name] as $exclude ) {
|
550 |
+
$exclude = sanitize_text_field($exclude);
|
551 |
+
if ( is_numeric($exclude) ) {
|
552 |
+
if( ! next( $_POST['exclude-'.$taxonomy->name] ) ) {
|
553 |
+
$temp .= $exclude;
|
554 |
+
} else {
|
555 |
+
$temp .= $exclude . ',';
|
556 |
+
}
|
557 |
}
|
558 |
}
|
559 |
$yturbo_options['exclude-'.$taxonomy->name] = $temp;
|
604 |
$yturbo_options['ytfeedbacktelegram'] = sanitize_text_field($_POST['ytfeedbacktelegram']);
|
605 |
|
606 |
if(isset($_POST['ytexcludeshortcodes'])){$yturbo_options['ytexcludeshortcodes'] = sanitize_text_field($_POST['ytexcludeshortcodes']);}else{$yturbo_options['ytexcludeshortcodes'] = 'disabled';}
|
607 |
+
|
608 |
$yturbo_options['ytexcludeshortcodeslist'] = '';
|
609 |
$checkboxes = isset($_POST['shortcodes']) ? $_POST['shortcodes'] : array();
|
610 |
+
foreach ( $checkboxes as $value ) {$yturbo_options['ytexcludeshortcodeslist'] .= sanitize_text_field($value) . ',';}
|
611 |
|
612 |
$types = explode(",", $yturbo_options['yttype']);
|
613 |
$types = array_diff($types, array(''));
|
632 |
if(isset($_POST['yttoc'])){$yturbo_options['yttoc'] = sanitize_text_field($_POST['yttoc']);}else{$yturbo_options['yttoc'] = 'disabled';}
|
633 |
$yturbo_options['yttype2'] = '';
|
634 |
$checkboxes = isset($_POST['types2']) ? $_POST['types2'] : array();
|
635 |
+
foreach ($checkboxes as $value) {$yturbo_options['yttype2'] .= sanitize_text_field($value) . ',';}
|
636 |
$yturbo_options['yttype2'] = sanitize_text_field($yturbo_options['yttype2']);
|
637 |
$yturbo_options['yttoczag'] = sanitize_text_field($_POST['yttoczag']);
|
638 |
$yturbo_options['yttocmesto'] = sanitize_text_field($_POST['yttocmesto']);
|
713 |
|
714 |
<div class="xyztabs">
|
715 |
|
716 |
+
<input style="left:-2000px;position: absolute;" type="text" name="yttab" id="yttab" size="30" value="<?php echo esc_attr(stripslashes($yturbo_options['yttab'])); ?>" />
|
717 |
<ul class="xyztabs__caption">
|
718 |
<li <?php if($yturbo_options['yttab']=='RSS-лента'){echo 'class="active"';} ?>><?php _e('RSS-лента', 'rss-for-yandex-turbo'); ?></li>
|
719 |
<li <?php if($yturbo_options['yttab']=='Оформление'){echo 'class="active"';} ?>><?php _e('Оформление', 'rss-for-yandex-turbo'); ?></li>
|
748 |
<tr class="trbordertop">
|
749 |
<th><?php _e('Заголовок:', 'rss-for-yandex-turbo'); ?></th>
|
750 |
<td>
|
751 |
+
<input type="text" name="yttitle" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['yttitle'])); ?>" />
|
752 |
<br /><small><?php _e('Название RSS-ленты. Если экспортируется содержимое всего сайта, укажите название сайта.', 'rss-for-yandex-turbo'); ?><br />
|
753 |
<?php _e('Если экспортируется раздел сайта, укажите только название раздела.', 'rss-for-yandex-turbo'); ?><br />
|
754 |
</small>
|
757 |
<tr>
|
758 |
<th><?php _e('Ссылка:', 'rss-for-yandex-turbo'); ?></th>
|
759 |
<td>
|
760 |
+
<input type="text" name="ytlink" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytlink'])); ?>" />
|
761 |
<br /><small><?php _e('URL сайта, данные которого экспортируются в RSS-ленту.', 'rss-for-yandex-turbo'); ?> </small>
|
762 |
</td>
|
763 |
</tr>
|
764 |
<tr>
|
765 |
<th><?php _e('Описание:', 'rss-for-yandex-turbo'); ?></th>
|
766 |
<td>
|
767 |
+
<input type="text" name="ytdescription" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytdescription'])); ?>" />
|
768 |
<br /><small><?php _e('Описание RSS-ленты одним предложением. Не используйте HTML-разметку.', 'rss-for-yandex-turbo'); ?> </small>
|
769 |
</td>
|
770 |
</tr>
|
1137 |
<tr class="ytsharechildtr" <?php if ($yturbo_options['ytshare'] == 'disabled') echo 'style="display:none;"'; ?>>
|
1138 |
<th><?php _e('Порядок:', 'rss-for-yandex-turbo'); ?></th>
|
1139 |
<td>
|
1140 |
+
<input style="" type="text" name="ytnetw" id="ytnetw" size="62" value="<?php echo esc_attr($yturbo_options['ytnetw']); ?>" disabled="disabled" />
|
1141 |
+
<input type="text" style="display:none;" name="ytnetwspan" id="ytnetwspan" value="<?php echo esc_attr($yturbo_options['ytnetw']); ?>"/>
|
1142 |
<br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
|
1143 |
</td>
|
1144 |
</tr>
|
1251 |
<tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
|
1252 |
<th><?php _e('Порядок кнопок:', 'rss-for-yandex-turbo'); ?></th>
|
1253 |
<td>
|
1254 |
+
<input style="" type="text" name="ytfeedbacknetw" id="ytfeedbacknetw" size="62" value="<?php echo esc_attr($yturbo_options['ytfeedbacknetw']); ?>" disabled="disabled" />
|
1255 |
+
<input type="text" style="display:none;" name="ytfeedbacknetwspan" id="ytfeedbacknetwspan" value="<?php echo esc_attr($yturbo_options['ytfeedbacknetw']); ?>"/>
|
1256 |
<br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
|
1257 |
</td>
|
1258 |
</tr>
|
1323 |
<tr class="ytfeedbackmailtr" style="display:none;">
|
1324 |
<th><?php _e('E-mail:', 'rss-for-yandex-turbo'); ?></th>
|
1325 |
<td>
|
1326 |
+
<input type="text" name="ytfeedbackmail" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackmail'])); ?>" />
|
1327 |
<br /><small><?php _e('Укажите адрес e-mail (пример: <tt>mail@test.ru</tt>).', 'rss-for-yandex-turbo'); ?></small>
|
1328 |
</td>
|
1329 |
</tr>
|
1513 |
<tr class="ytratingchildtr" <?php if ($yturbo_options['ytrating'] == 'disabled') echo 'style="display:none;"'; ?>>
|
1514 |
<th><?php _e('Диапазон оценок:', 'rss-for-yandex-turbo'); ?></th>
|
1515 |
<td>
|
1516 |
+
<?php _e('От:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;margin-right:10px;" name="ytratingmin" type="number" min="1" max="5" step="0.01" value="<?php echo esc_attr($yturbo_options['ytratingmin']); ?>" />
|
1517 |
+
<?php _e('До:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;" name="ytratingmax" type="number" min="1" max="5" step="0.01" value="<?php echo esc_attr($yturbo_options['ytratingmax']); ?>" />
|
1518 |
<br /><small><?php _e('Укажите минимальную и максимальную оценку.', 'rss-for-yandex-turbo'); ?><br />
|
1519 |
<?php _e('Каждой записи будет присвоена случайная оценка в указанном диапазоне.', 'rss-for-yandex-turbo'); ?><br />
|
1520 |
<?php _e('Этот рейтинг будет выведен сразу после заголовка с миниатюрой записи.', 'rss-for-yandex-turbo'); ?><br />
|
1891 |
if ( $exclude_term_ids ) {
|
1892 |
$terms = get_terms( $taxonomy->name, array('include'=>$exclude_term_ids,'hide_empty'=>false,'hierarchical'=>false) );
|
1893 |
foreach ( $terms as $term ) {
|
1894 |
+
echo "<li><input type='checkbox' name='exclude-{$taxonomy->name}[{$term->term_id}]' id='exclude_{$term->term_id}' value='{$term->term_id}' checked='checked' /> <label for='exclude_{$term->term_id}'>" . esc_html($term->name) . "</label></li> ";
|
1895 |
}
|
1896 |
}
|
1897 |
?>
|
2080 |
<tr class="ytexcludetagslisttr" <?php if ($yturbo_options['ytexcludetags'] == 'disabled') echo 'style="display:none;"'; ?>>
|
2081 |
<th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
|
2082 |
<td style="padding-top: 5px;">
|
2083 |
+
<input style="display:none;" name="ytexcludetagslist-input" class="ytexcludetagslist-input" placeholder="" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist'])); ?>" />
|
2084 |
<input type="hidden" id="tags-list" value="<?php echo yturbo_tags_list(); ?>" />
|
2085 |
+
<input type="hidden" name="ytexcludetagslist" id="ytexcludetagslist" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist'])); ?>" />
|
2086 |
<small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
|
2087 |
<?php _e('Самозакрывающиеся теги вроде <tt><br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?><br />
|
2088 |
<?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
|
2099 |
<tr class="ytexcludetagslist2tr" <?php if ($yturbo_options['ytexcludetags2'] == 'disabled') echo 'style="display:none;"'; ?>>
|
2100 |
<th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
|
2101 |
<td style="padding-top: 5px;">
|
2102 |
+
<input style="display:none;" name="ytexcludetagslist-input2" class="ytexcludetagslist-input2" placeholder="" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist2'])); ?>" />
|
2103 |
<input type="hidden" id="tags-list2" value="<?php echo yturbo_tags_list(); ?>" />
|
2104 |
+
<input type="hidden" name="ytexcludetagslist2" id="ytexcludetagslist2" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist2'])); ?>" />
|
2105 |
<small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
|
2106 |
<?php _e('Самозакрывающиеся теги вроде <tt><br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?> <br />
|
2107 |
<?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
|
2295 |
}
|
2296 |
|
2297 |
if(isset($_POST['ytextendedhtmlmeta'])){
|
2298 |
+
$selected = sanitize_text_field($_POST['ytextendedhtmlmeta']);
|
2299 |
update_post_meta($post_id, 'ytextendedhtmlmeta', $selected);
|
2300 |
}
|
2301 |
}
|
2629 |
}
|
2630 |
|
2631 |
//если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
|
2632 |
+
if(!isset($yttype[0])){$yttype=array();$yttype[0]='trulala';}
|
2633 |
|
2634 |
$args = array(
|
2635 |
'paged' => $paged,
|
2657 |
version="2.0">
|
2658 |
<channel>
|
2659 |
<turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
|
2660 |
+
<title><?php echo esc_attr(stripslashes($yttitle)); ?></title>
|
2661 |
<link><?php echo esc_html($ytlink); ?></link>
|
2662 |
+
<description><?php echo esc_attr(stripslashes($ytdescription)); ?></description>
|
2663 |
<?php if ($ytmetrika) { ?><turbo:analytics id="<?php echo $ytmetrika; ?>" type="Yandex"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
|
2664 |
<?php if ($ytliveinternet) { ?><turbo:analytics type="LiveInternet"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
|
2665 |
<?php if ($ytgoogle) { ?><turbo:analytics id="<?php echo $ytgoogle; ?>" type="Google"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
|
2734 |
//удаляем unicode-символы (как невалидные в rss)
|
2735 |
$content = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/u', '', $content);
|
2736 |
|
2737 |
+
//убираем лишние figure вокруг галереи (на 5.9 изменилась разметка плюс лишние figure, если прописано описание галереи)
|
2738 |
+
//<tempgallery> будет убрано позже в yturbo_do_gallery
|
2739 |
+
$content = preg_replace_callback('#(<figure class=\"wp-block-gallery[^>]*>)(.+?)(</figure>\n</figure>|</figure><figcaption class="blocks-gallery-caption">(.*?)</figcaption></figure>)#is', function($m){
|
2740 |
+
$pattern = '/<figure(.*?)><img(.*?)>(.*?)<\/figure>/i';
|
2741 |
+
$replacement = '<img$2>';
|
2742 |
+
$m[2] = preg_replace($pattern, $replacement, $m[2]);
|
2743 |
+
return('<tempgallery>'.$m[2].'</tempgallery>');
|
2744 |
+
}, $content);
|
2745 |
+
|
2746 |
//удаляем разметку движка при использовании шорткода с подписью [caption] (в html4 темах - classic editor)
|
2747 |
+
$pattern = "/<div(.*?)>(.*?)<img(.*?)\/>(.*?)<\/p>\n<p(.*?)>(.*?)<\/p>\n<\/div>/i";
|
2748 |
+
$replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
|
2749 |
$content = preg_replace($pattern, $replacement, $content);
|
2750 |
//разметка описания на случай, если тег div удаляется в настройках плагина
|
2751 |
+
$pattern = "/<p>(.*?)<img(.*?)\/>(.*?)<\/p>\n<p(.*?)class=\"wp-caption-text\">(.*?)<\/p>/i";
|
2752 |
+
$replacement = '<tempfigure>$1<tempimg$2/>$3<tempfigcaption>$5</tempfigcaption></tempfigure>';
|
2753 |
$content = preg_replace($pattern, $replacement, $content);
|
2754 |
|
2755 |
//удаляем разметку движка при использовании шорткода с подписью [caption] (в html5 темах - classic editor)
|
2756 |
+
$pattern = "/<figure(.*?)>(.*?)<img(.*?)\/>(.*?)<figcaption(.*?)>(.*?)<\/figcaption><\/figure>/i";
|
2757 |
+
$replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
|
2758 |
$content = preg_replace($pattern, $replacement, $content);
|
2759 |
|
2760 |
//удаляем <figure>, если они изначально присутствуют в контенте записи (с указанным caption - gutenberg)
|
2761 |
+
$pattern = "/<figure(.*?)>(.*?)<img(.*?)\/>(.*?)<figcaption(.*?)>(.*?)<\/figcaption><\/figure>/i";
|
2762 |
+
$replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
|
2763 |
$content = preg_replace($pattern, $replacement, $content);
|
2764 |
|
2765 |
//удаляем <figure>, если они изначально присутствуют в контенте записи (без caption - gutenberg)
|
2766 |
$pattern = "/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i";
|
2767 |
+
$replacement = '<tempfigure>$2<tempimg$3>$4</tempfigure>';
|
2768 |
$content = preg_replace($pattern, $replacement, $content);
|
2769 |
|
2770 |
+
//удаляем <figure> вокруг всех остальных элементов (яндекс такое не понимает)
|
2771 |
$pattern = "/<figure(.*?)>/i";
|
2772 |
$replacement = '';
|
2773 |
$content = preg_replace($pattern, $replacement, $content);
|
2774 |
$pattern = "/<\/figure>/i";
|
2775 |
$replacement = '';
|
2776 |
$content = preg_replace($pattern, $replacement, $content);
|
2777 |
+
$pattern = "/<figcaption(.*?)>(.*?)<\/figcaption>/i";
|
2778 |
$replacement = '';
|
2779 |
$content = preg_replace($pattern, $replacement, $content);
|
2780 |
|
2781 |
+
//обрабатываем картинки в ссылках
|
2782 |
+
$pattern = "/<a(.*?)>(.*?)<img(.*?)>(.*?)<\/a>/i";
|
2783 |
+
$replacement = '<tempfigure><a$1><tempimg$3></a></tempfigure>';
|
2784 |
$content = preg_replace($pattern, $replacement, $content);
|
2785 |
|
2786 |
+
//обрабатываем картинки без ссылок
|
2787 |
+
$pattern = "/<img(.*?)>/i";
|
2788 |
+
$replacement = '<tempfigure><tempimg$1></tempfigure>';
|
2789 |
$content = preg_replace($pattern, $replacement, $content);
|
2790 |
|
2791 |
+
//удаляем лишние теги параграфов
|
2792 |
+
$pattern = "/<p><tempfigure>(.*?)<\/tempfigure><\/p>/i";
|
2793 |
+
$replacement = '<tempfigure>$1</tempfigure>';
|
2794 |
+
$content = preg_replace($pattern, $replacement, $content);
|
2795 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2796 |
if ($ytfigcaption == 'Отключить описания') {
|
2797 |
+
$pattern = "/<tempfigcaption>(.*?)<\/tempfigcaption>/i";
|
2798 |
+
$replacement = '';
|
2799 |
$content = preg_replace($pattern, $replacement, $content);
|
2800 |
}
|
2801 |
|
2802 |
+
$content = str_replace('<tempfigure', '<figure', $content);
|
2803 |
+
$content = str_replace('</tempfigure>', '</figure>', $content);
|
2804 |
+
$content = str_replace('<tempfigcaption>', '<figcaption>', $content);
|
2805 |
+
$content = str_replace('</tempfigcaption>', '</figcaption>', $content);
|
2806 |
+
$content = str_replace('<tempimg', '<img', $content);
|
2807 |
+
|
2808 |
$purl = plugins_url('', __FILE__);
|
2809 |
|
2810 |
+
//преобразуем iframe с видео
|
2811 |
+
$pattern = "/<iframe title=\"(.*?)\"(.*?) allow=\"(.*?)\"(.*?)><\/iframe>/i";
|
2812 |
+
$replacement = '<iframe$2 allowfullscreen="true"></iframe>';
|
2813 |
+
$content = preg_replace($pattern, $replacement, $content);
|
2814 |
+
|
2815 |
//формируем video для mp4 файлов согласно документации яндекса (гутенберг)
|
2816 |
$pattern = "/<video(.*?)src=\"(.*?).mp4\"><\/video>/i";
|
2817 |
$replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
|
2819 |
|
2820 |
//формируем video для mp4 файлов согласно документации яндекса (классический редактор)
|
2821 |
$content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'video\');</script><![endif]-->', '', $content);
|
2822 |
+
$content = str_replace('<!--[if lt IE 9]><![endif]-->', '', $content);
|
2823 |
$pattern = "/<video class=\"wp-video-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp4(.*?)\"(.*?)\/>(.*?)<\/video>/i";
|
2824 |
$replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
|
2825 |
$content = preg_replace($pattern, $replacement, $content);
|
2836 |
$content = preg_replace($pattern, $replacement, $content);
|
2837 |
|
2838 |
//удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
|
2839 |
+
if (preg_match_all("/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i", $content, $res)) {
|
2840 |
$i = 0;
|
2841 |
if ($ytrelated=='enabled' && $ytrelatednumber && $ytrelatedinfinity != 'enabled') $i = $ytrelatednumber;
|
2842 |
if ($ytthumbnail=='enabled' && has_post_thumbnail(get_the_ID())) $i++;
|
2870 |
$content = apply_filters( 'yturbo_add_contents', $content );
|
2871 |
?>
|
2872 |
<header>
|
2873 |
+
<?php
|
2874 |
+
if ( $ytthumbnail == 'enabled' && has_post_thumbnail( get_the_ID() ) ) {
|
2875 |
+
$caption = ''; $imgurl = '';
|
2876 |
+
$caption = get_the_post_thumbnail_caption( get_the_ID() );
|
2877 |
+
$imgurl = strtok(get_the_post_thumbnail_url( get_the_ID(), $ytselectthumb), '?');
|
2878 |
+
if ( $caption && $ytfigcaption != 'Отключить описания' ) {
|
2879 |
+
$temp = '<figcaption>'.$caption.'</figcaption>';}
|
2880 |
+
else {
|
2881 |
+
$temp='';
|
2882 |
+
}
|
2883 |
+
echo '<figure><img src="'. strtok(get_the_post_thumbnail_url(get_the_ID(),$ytselectthumb), '?') .'" />'.$temp.'</figure>'.PHP_EOL;
|
2884 |
+
}
|
2885 |
+
if ( $ytthumbnail == 'enabled' && ! has_post_thumbnail( get_the_ID() ) ) {
|
2886 |
+
$caption = ''; $imgurl = '';
|
2887 |
+
$caption = apply_filters('yturbo_thumb_caption', $caption);
|
2888 |
+
$imgurl = apply_filters('yturbo_thumb_imgurl', $imgurl);
|
2889 |
+
if ( $caption && $ytfigcaption != 'Отключить описания' ) {
|
2890 |
+
$temp = '<figcaption>'.$caption.'</figcaption>';}
|
2891 |
+
else {
|
2892 |
+
$temp='';
|
2893 |
+
}
|
2894 |
+
if ( $imgurl ) {
|
2895 |
+
echo '<figure><img src="'. $imgurl .'" />'.$temp.'</figure>'.PHP_EOL;
|
2896 |
+
}
|
2897 |
+
}
|
2898 |
+
?>
|
2899 |
<h1><?php echo get_the_title_rss(); ?></h1>
|
2900 |
+
<?php if ( $ytselectmenu != 'Не использовать' ) {
|
2901 |
echo '<menu>'.PHP_EOL;
|
2902 |
$menu = wp_get_nav_menu_object( $ytselectmenu );
|
2903 |
$menu_items = wp_get_nav_menu_items($menu->term_id);
|
3227 |
}
|
3228 |
else :
|
3229 |
|
3230 |
+
if(!isset($yttype[0])){$yttype=array();$yttype[0]='trulala';}//если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
|
3231 |
$args = array('ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytnumber,'tax_query' => $tax_query,
|
3232 |
'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),
|
3233 |
array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
|
3346 |
$rpl = str_replace($r[1], $attrs, $tag);
|
3347 |
//заменяем одинарные кавычки на двойные
|
3348 |
$rpl = str_replace("'", "\"", $rpl);
|
3349 |
+
$rpl = str_replace(" ", " ", $rpl);
|
3350 |
//добавляем закрывающий символ / если он отсутствует
|
3351 |
$rpl = str_replace("\">", "\" />", $rpl);
|
3352 |
//добавляем пробел перед закрывающим символом /
|
3451 |
//функция преобразования стандартных галерей движка в турбо-галереи в гутенберге begin
|
3452 |
function yturbo_do_gallery( $content ) {
|
3453 |
|
3454 |
+
//удаляем ul разметку галерей в гутенберге (wordpress 5.0+)
|
3455 |
+
$pattern = "/<ul class=\"wp-block-gallery(.*?)>(.*?)<\/ul>/s";
|
3456 |
$replacement = '<div data-block="gallery">$2</div>';
|
3457 |
$content = preg_replace($pattern, $replacement, $content);
|
3458 |
|
3459 |
+
//удаляем ul разметку галерей в гутенберге (wordpress 5.3+)
|
3460 |
+
$pattern = "/<ul class=\"blocks-gallery-grid(.*?)>(.*?)<\/ul>/s";
|
3461 |
$replacement = '<div data-block="gallery">$2</div>';
|
3462 |
$content = preg_replace($pattern, $replacement, $content);
|
3463 |
|
3464 |
//удаляем li разметку галерей в гутенберге
|
3465 |
+
$pattern = "/<li class=\"blocks-gallery-item\">\n<figure>(.*?)<img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
|
3466 |
+
$replacement = '<img src="$2"/>';
|
3467 |
+
$content = preg_replace($pattern, $replacement, $content);
|
3468 |
+
|
3469 |
+
$pattern = "/<li class=\"blocks-gallery-item\">\n<figure>(.*?)<img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
|
3470 |
+
$replacement = '<img src="$2"/>';
|
3471 |
$content = preg_replace($pattern, $replacement, $content);
|
3472 |
|
3473 |
+
//удаляем двойную обертку (tempgallery)
|
3474 |
+
$content = str_replace('<tempgallery><div data-block="gallery">','<div data-block="gallery">',$content);
|
3475 |
+
$content = str_replace('</div></tempgallery>',PHP_EOL.'</div>',$content);
|
3476 |
+
//двойная оберка только на 5.8 и ниже, на 5.9 и выше убираем так
|
3477 |
+
$content = str_replace('<tempgallery>','<div data-block="gallery">',$content);
|
3478 |
+
$content = str_replace('</tempgallery>',PHP_EOL.'</div>',$content);
|
3479 |
+
|
3480 |
return $content;
|
3481 |
}
|
3482 |
//функция преобразования стандартных галерей движка в турбо-галереи в гутенберге end
|
3630 |
if ($yturbo_options['ytfeedbackcallback']) {
|
3631 |
$content .= '<div data-type="callback" data-send-to="'.$yturbo_options['ytfeedbackcallback'].'"';
|
3632 |
if ($yturbo_options['ytfeedbackcallback2'] && $yturbo_options['ytfeedbackcallback3']) {
|
3633 |
+
$content .= ' data-agreement-company="'.esc_attr(stripslashes($yturbo_options['ytfeedbackcallback2'])).'" data-agreement-link="'.$yturbo_options['ytfeedbackcallback3'].'"';
|
3634 |
}
|
3635 |
}
|
3636 |
$content .= '></div>'.PHP_EOL;
|
3810 |
'to_menu' => false,
|
3811 |
'title' => $yturbo_options['yttoczag'],
|
3812 |
'min_found' => $yturbo_options['yttocnumber'],
|
3813 |
+
'min_length' => 10,
|
3814 |
'page_url' => get_the_permalink(),
|
3815 |
'selectors' => $selectors,
|
3816 |
);
|
4060 |
'ytrssenabled_meta_value',
|
4061 |
'template_meta',
|
4062 |
'custom_template',
|
4063 |
+
'ytextendedhtmlmeta',
|
4064 |
);
|
4065 |
if ( in_array($meta_key, $hide_meta_keys) ) {
|
4066 |
return true;
|
4096 |
<turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
|
4097 |
<title><?php echo stripslashes($yturbo_options['yttitle']); ?></title>
|
4098 |
<link><?php echo esc_html($yturbo_options['ytlink']); ?></link>
|
4099 |
+
<description><?php echo esc_attr(stripslashes($yturbo_options['ytdescription'])); ?></description>
|
4100 |
+
<language><?php echo esc_attr($yturbo_options['ytlanguage']); ?></language>
|
4101 |
<generator>RSS for Yandex Turbo v<?php echo $yturbo_options['version']; ?> (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
|
4102 |
<?php if ( $yturbo_options['ytexcludeurlslist'] ) {
|
4103 |
$textAr = explode("\n", str_replace(array("\r\n", "\r"), "\n", $yturbo_options['ytexcludeurlslist']));
|
4189 |
if ( ! isset($_REQUEST['taxonomy']) )
|
4190 |
return;
|
4191 |
|
4192 |
+
$taxonomy = (string) sanitize_text_field($_REQUEST['taxonomy']);
|
4193 |
|
4194 |
header("HTTP/1.1 200");
|
4195 |
header("Content-Type: text/html; charset=UTF-8");
|
4210 |
'hide_empty' => false,
|
4211 |
'hierarchical' => false,
|
4212 |
'number' => 100,
|
4213 |
+
'offset' => sanitize_text_field($_REQUEST['offset'])
|
4214 |
));
|
4215 |
|
4216 |
if ( ! $terms ) {
|
4219 |
}
|
4220 |
|
4221 |
foreach ($terms as $term) {
|
4222 |
+
echo "<li><input type='checkbox' name='exclude-{$taxonomy}[{$term->term_id}]' id='exclude_{$term->term_id}' value='{$term->term_id}' /> <label for='exclude_{$term->term_id}'>" . esc_html($term->name) . "</label></li>";
|
4223 |
}
|
4224 |
exit;
|
4225 |
}
|