Мой сайт о WordPress и PHP С Днем победы!
11 апреля 2006

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

Читали 3554 раза
Рубрика: Новости мира WordPress
Навигация: Главная » WordPress » Новости мира WordPress

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

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

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

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

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

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

Приступаем

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

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

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

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

...
	// Let's check the remote site
	$linea = wp_remote_fopen( $pagelinkedfrom );
	if ( !$linea )
	   return new IXR_Error(16, 'The source URI does not exist.');

вот сюда (вместо этой строки!) нужно вставить исправление

	// Work around bug in strip_tags():
	$linea = str_replace('< !DOC', '<DOC', $linea);
...

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

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

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

4 комментария к “Исправляем кодировку Ping в WordPress’е”

  1. Борис Семёнович:

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

  2. erimiya:

    Здравствуйте!
    Есть вопрос по ПИНГУ, более подходящей темы на сайте не нашел, так что если немного не по теме СОРРИ…
    Интересен такой вопрос:
    В самом WordPress написано: “Когда вы публикуете новое сообщение, WordPress автоматически оповещает следующее сайты услуг обновления”
    То есть как только был написан новый пост сразу же происходит пинг этого поста? А преведущие посты тоже пингуються или нет? Можно ли поставить расписания на крон чтоб WordPress производил пинг по этому расписанию?
    Если это возможно то прошу Вас поподробнее описать процесс ПИНГА!
    Заранее спасибо.
    С уважением, erimiya…

  3. www.FinRaduga.Com:

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

  4. www.FinRaduga.Com:

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


Оставьте комментарий! (Вы согласны с правилами)

 

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

При добавлении кода (html, php) заменяйте < на &lt; и > на &gt;.
Внимание: антиспам - зверь! Копируйте своё сообщение перед отправкой. На всякий случай.