Исправляем кодировку Ping в WordPress’е

Рубрика: WordPress -> Статьи
Вторник, 11 апреля 2006 г.
Просмотров: 3957
Подписаться на комментарии по RSS
]]>
]]>

Если вы думаете, что trackback'и и ping'и в WordPress'е реализуются одинаково, то ошибетесь. В ближайшее время я планирую написать статью, рассказывающую об их различиях, а пока кратко опишу их алгоритмы и приведу хак (исправление), с помощью которого ваш WordPress сможет корректно работать с любой кодировкой.

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

Пинги же - это не что иное, как простое указание ссылки прямо в тексте сообщения. При публикации поста, WordPress автоматически «вычленяет» все ссылки и пытается отправить по этим адресам адрес только что созданного вами сообщения. Главное различие между пингом и трэкбэком заключается в том, что пинг - это простая посылка только ссылки (URL), а трэкбэк - это определенным образом сформированный xml-запрос.

Механизм трэкбэков реализуется на уровне «движка», пинги - это не что иное, как технология XML-RPC (по-сути - управление сайтом).

Проблему кодировки трэкбэков я уже рассматривал и там же привел способ полностью решить эту проблему. Сейчас я привожу уже готовое решение пингов для блогов с кодировками UTF-8 или Windows-1251.

Кодировка «входящего» сообщения будет определена правильно только в случае, если на самой странице в явном виде указана кодировка «meta ... charset=...». Если такого указания нет, то будет использоваться кодировка UTF-8.

Приступаем

Скачайте файл исправления - это обычный текстовый файл, который вы вставите в xmlrpc.php.

Откройте файл xmlrpc.php. Почти в самом конце найдите такую функцию (она длинная, поэтому будьте внимательны; сделайте резервную копию файла):

  1.  /* pingback.ping gets a pingback and registers it */
  2.   function pingback_ping($args) {
  3.   ...

В ней строчки, между которыми нужно вставить исправление («#### FIX ...»).

  1.  ...
  2.   // Let's check the remote site
  3.   $linea = wp_remote_fopen( $pagelinkedfrom );
  4.   if ( !$linea )
  5.   return new IXR_Error(16, 'The source URI does not exist.');
  6.  вот сюда (вместо этой строки!) нужно вставить исправление
  7.   // Work around bug in strip_tags():
  8.   $linea = str_replace('< !DOC', '<DOC', $linea);
  9.  ...

Напомню, что копирование в буфер обмена Ctrl+C, вставка из буфера - Ctrl+V. smile

После этого сохраните файл xmlrpc.php и загрузите его на сервер.

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>
РЕКЛАМА заказать хостинг в Украине оперативная урология со скидкойплоский шифер

Комментариев: 4

Вы можете получать новые комментарии к этой записи по RSS или оформить подписку на все комментарии сайта. Или даже на все новые записи сайта. (Не знаете, как это сделать?)
  1. 2007-06-01 в 00:41:44 | Борис Семёнович

    Очень необходимая информация.С благодарностью!

  2. 2007-12-24 в 04:17:51 | erimiya

    Здравствуйте!

    Есть вопрос по ПИНГУ, более подходящей темы на сайте не нашел, так что если немного не по теме СОРРИ…

    Интересен такой вопрос:

    В самом WordPress написано: “Когда вы публикуете новое сообщение, WordPress автоматически оповещает следующее сайты услуг обновления”

    То есть как только был написан новый пост сразу же происходит пинг этого поста? А преведущие посты тоже пингуються или нет? Можно ли поставить расписания на крон чтоб WordPress производил пинг по этому расписанию?

    Если это возможно то прошу Вас поподробнее описать процесс ПИНГА!

    Заранее спасибо.

    С уважением, erimiya…

  3. 2008-04-05 в 07:11:44 | www.FinRaduga.Com

    Мне очень нравится информация на вашем сайте. Очень всегда содержательно. Стараюсь возвращаться и побродить у вас. Спасибочки! Совсем недавно добавил к своей структуре сайта вордпресс. Ну не нравится мне больше никакая cms. Сил нет. Такая тяжёлость в них какая-то и непрактичность. Не увлекло по началу и сие создание. Но я возвращался раз за разом. И всё таки установил и сейчас без него не могу. Оказывается, всё ещё зависит от выбора шаблона! Увидел и сказал себе - хочу!!! Так то вот! Так что, те кто строчит шаблоны - не торопитесь! Создавайте шедевры, а не блокноты, коих по сети уже складывать некуда!!! smile Ещё меня одна вещь бесит: так это то , что у большенства шабиков бар находится с правой стороны. Вот теперь роюсь в шаьлоне, как поменять всё это дело местами! Америкосы страдают леворукостью - достали! А при чём здесь шаблоны! Понимаю, ч то арабы и пишут в обратную сторону - справа налево! smile Всем удачи, радости и счастья! Да, и денег много-много!

  4. 2008-04-05 в 07:16:06 | www.FinRaduga.Com

    А вот ещё хочу дописать: порабы уже писателям плагинов создать такой: чтобы комменты не грузились все, а только часть или разбивались на несколько страниц. Захожу на многие сайте с вп и просто падаю, страница и грузится долше и всё равно всё не читаешь, тем более что они на другом языке бывает, а переводить всё в лом или нет необходимости. Да и не только плагин, а чтобы это было законом для движка: не показывать все комменты сразу! На кой!

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки. Если вы зарегистрированы в Твиттере, то перед логином укажите «@», например: @maxsite

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)