Intereting Posts
Получить постоянную ссылку по умолчанию при использовании дружественных URL-адресов в WordPress Как начать с номера сообщения x? найти случайный блог в моей многопользовательской сети, в которой есть хотя бы одно опубликованное сообщение Нельзя использовать специальный пользовательский URL (slug)? Как показать ссылку или кнопку «Читать дальше» в пользовательской полевой выдержке, если она меньше предела слова Как использовать текстовый редактор wordpress на php-странице автоматические тесты в качестве пользователя? Нечетный файл сценария пытается загрузить Yoast SEO плагин – ссылки Sitemap greyed out и приоритет страницы Невозможно установить новые плагины из-за ошибки «Не удалось создать каталог» Использование слегка измененного виджета Запрос пользовательского типа сообщения по таксономии Переадресация почтовых паролей Обработка ошибок плагина wordpress добавление нескольких пользовательских столбцов в users.php

Переадресация мобильного телефона PHP Бесконечный цикл

У меня есть мобильная версия, которую я создаю вне WordPress во вложенной папке на том же сервере, что и моя установка WordPress. Я включаю файл wp-load.php, чтобы вытащить содержимое из базы данных WordPress.

Если я включу этот плагин ( http://wordpress.org/plugins/php-mobile-redirect/ ), он перейдет в бесконечный цикл.

Я понимаю теперь, делая это, я также вызываю все активные плагины. Или, по крайней мере, я думаю, что я вызываю сценарий переадресации, который вызывает бесконечный цикл.

Если я перейду на обычный сайт, http://s168249.gridserver.com/ на мобильный телефон или спуфинг браузера, бесконечный цикл.

Если я перейду на мобильный сайт, http://s168249.gridserver.com/mobile/index.php , на телефоне, бесконечный цикл.

Если я отключу перенаправление, я могу перейти на мобильный сайт без затруднений.

НАСТОЯЩЕЕ ВРЕМЯ ОТКЛЮЧЕНИЯ

Поэтому я предполагаю, что включение в файл мобильного index.php мобильного скрипта переадресации wp_load.php является тем, что вызывает проблему.

Есть ли способ исключить именно этот плагин?

http://wordpress.org/extend/plugins/php-mobile-redirect/

Solutions Collecting From Web of "Переадресация мобильного телефона PHP Бесконечный цикл"

Отключите плагин и добавьте в свой файл function.php add

 add_action('init', 'my_mobile_redirect'); function get_first_url_subdir() { return str_replace( str_replace( array('http://', 'https://'), '', get_site_url() ), '', $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); } function redirect_mobile_with_cookie() { $cookiename = 'redirect_mobile_is_a_mobile_device'; if ( isset($_COOKIE[$cookiename]) && ($_COOKIE[$cookiename] == 'yes') && strpos(get_first_url_subdir(), '/mobile') !== 0) return true; return false; } function my_mobile_redirect(){ if ( redirect_mobile_with_cookie() ) { wp_redirect( get_site_url() . '/mobile/'); exit(); } elseif ( strpos(get_first_url_subdir(), '/mobile') !== 0 && wp_is_mobile() ) { $cookiename = 'redirect_mobile_is_a_mobile_device'; setcookie($cookiename, 'yes'); wp_redirect( get_site_url() . '/mobile/'); exit(); } } 

Предыдущие функции работают с функцией WordPress wp_is_mobile которые не различают планшеты и телефоны.

Если вам нужно различать таблетки и телефоны, вы можете использовать скрипт Mobile Detect . Загрузите его, вставьте в папку. Для semplicity здесь я предполагаю, что Mobile_Detect.php находится в корне тема.

Следующая функция работает в сочетании с тремя выше.

 function my_adv_mobile_redirect() { if ( redirect_mobile_with_cookie() ) { wp_redirect( get_site_url() . '/mobile/'); exit(); } else { @include_once( trailingslashit(TEMPLATEPATH) . 'Mobile_Detect.php' ); if ( ! class_exists('Mobile_Detect') ) return my_mobile_redirect(); $detect = new Mobile_Detect; // redirects only phones if (strpos(get_first_url_subdir(), '/mobile') !== 0 && ($detect->isMobile() && ! $detect->isTablet())) { $cookiename = 'redirect_mobile_is_a_mobile_device'; setcookie($cookiename, 'yes'); wp_redirect( get_site_url() . '/mobile/'); exit(); } } } 

Если вы хотите использовать эту расширенную функцию, просто замените действие init в предыдущем коде на: add_action('init', 'my_adv_mobile_redirect')

Я не тестировал это, но в index.php для вашего мобильного сайта вы можете добавить

remove_action('init', 'pmr_mobile_redirect');

это теоретически отключит плагин перенаправления.