Премиальное программное обеспечение и практические уроки
Решение проблемы невозможности использования гиперссылки Thunder в WordPress
ГромГиперссылка громЭтот протокол не поддерживается WordPress, за исключением http: и https:. При вводе thunder: он будет автоматически отфильтрован системой. В интернете есть несколько ресурсов.Гром ГиперссылкаИногда необходимо использовать протокол Thunder. Как включить Thunder в WP?магнит,ed2kА что насчёт других протоколов? Давайте разберёмся, как включить поддержку этих протоколов.
Добавьте новые протоколы, такие как Thunder, Magnet и ed2k, в гиперссылки WordPress.
Для предотвращения SQL-инъекций, XSS и других атак WordPress автоматически фильтрует контент при сохранении статей, что приводит к автоматическому удалению неподдерживаемых заголовков протоколов в гиперссылках (например: thunder://, magnet:?xt=urn:btih:).
Самое простое и жестокое решение — отключить функцию фильтрации.
Измените файл wp-includes/post.php и измените $postarr = sanitize_post($postarr, 'db');
Закомментируйте.
//$postarr = sanitize_post($postarr, 'db');
Этот метод прост и практичен, но он означает отказ от профилактической функции WordPress и создает риски безопасности, поэтому его не рекомендуется использовать.
Как эффективно поддерживать новые протоколы, такие как thunder, magnet, ed2k и т. д.
Способ 1: Измените wp-includes/functions.php, чтобы добавить поддержку нового протокола
Изменить wp-includes/functions.php функция wp_allowed_protocols()
если ( пусто ( $protocols ) ) { $protocols = массив ( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'sms', 'svn', 'tel', 'fax', 'xmpp', 'webcal', 'urn' ); }
Непосредственно добавьте новый протокол, который необходимо добавить, например:
если (пусто( $protocols ) ) { $protocols = массив( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'sms', 'svn', 'tel', 'fax', 'xmpp', 'webcal', 'urn', 'thunder', 'magnet', 'ed2k'); }
У этого метода есть проблема: поскольку он изменяет глобальную переменную файла wp-includes/functions.php, каждое обновление WordPress будет перезаписывать файл functions.php, и вам придётся вручную редактировать его снова. Если ваша версия WordPress обновляется нечасто, вы можете использовать этот метод.
Способ 2: Измените файл functions.php в теме, чтобы добавить поддержку нового протокола.
Измените wp-content/themes/theme name/functions.php и добавьте следующий контент:
function ss_allow_thunder_protocol( $protocols ) { $protocols[] = 'гром'; return $protocols; } function ss_allow_magnet_protocol( $protocols ) { $protocols[] = 'магнит'; return $protocols; } function ss_allow_ed2k_protocol( $protocols ) { $protocols[] = 'ed2k'; return $protocols; } add_filter( 'kses_allowed_protocols' , 'ss_allow_thunder_protocol' ); add_filter( 'kses_allowed_protocols' , 'ss_allow_magnet_protocol' ); add_filter( 'kses_allowed_protocols' , 'ss_allow_ed2k_protocol' );
Вставьте содержимое в конец файла functions.php. Если вы хотите добавить другие протоколы, просто измените его в соответствии с приведённым выше кодом.
Или, если вы устанавливаете плагин с функцией вставки кода, просто добавьте указанный выше код в плагин.
Рекомендуемый плагин для управления кодом:Мощный и гибкий плагин для управления кодом WPCode может вставлять любой код JS, CSS, PHP по условию