Главная » Веб-разработка

(J)ExR плагин для WordPress и исправление ошибки “Empty delimiter”

11 Май 2008 просмотров 4 925 комментариев 9


В обзоре лучших плагинов приметила для себя плагин (J)ExR – JawsIk External Redirect Plugin. Основная его функция – кодирование внешних ссылок с вашего блога, чтобы не передавать вес страницы по этой внешней ссылке.

Т.е. все ссылки вида: http://www.vasyapupkin.ru/ , не имеющие отношение к вашему сайту будут представлены в формате:  http://www.ваш_сайт.ru/jexr/aHR0cDovL3Rvb2xz… (если включена опция кодировки в настройках плагина) или http://www.ваш_сайт.ru/jexr/http://www.vasyapupkin.ru/

При переходе по такой ссылке браузер автоматически перенаправляет вас на “исходный”, т.е. незакодированный url. А чтобы подобные ссылки не идексировались с вашего сайта, достаточно прописать правило в robots.txt:

User-Agent: *
Disallow: /jrex/

Однако, пользователи, у которых блог размещен на хостинге с php4 могут столкнуться с проблемой. После активации плагина, около каждой ссылки возникает ошибка:

Warning: strpos() [function.strpos]: Empty delimiter. in /home/..... /wp-includes/compat.php on line 146

Дело действительно в версии PHP. Т.к. в php4 нет функции stripos(), разработчики WordPress использовали следующий код:

if (!function_exists("stripos")) {
function stripos($haystack, $needle, $offset=0) {
return strpos(strtolower($haystack), strtolower($needle), $offset);
}
}

Ошибку вызывает строка return strpos.

К счастью, решение проблемы оказалось очень простым, спасибо Otto42:

Если версия WordPress < 2.5 необходимо добавить символ @ перед функцией strpos,в простивном случае @ ставите перед самой строкой return

if (!function_exists("stripos")) {
function stripos($haystack, $needle, $offset=0) {
return @strpos(strtolower($haystack), strtolower($needle), $offset);
}
}

Теперь можно пользоваться плагином как будто ошибок и не было :)

Комментариев 9 »

Комментарии

Добавьте ваш комментарий, или трекбэк с сайта. Вы также можете подписаться на комментарии к этой статье через RSS.

Вы можете использовать теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Чтобы получить аватарку, зарегистрируйтесь на Gravatar.