WordPress: Яндекс.Блоги вместо Technorati

05.12.2006 – 7:03 пп

Этот небольшой хак панели управления WordPress позволит вам получать список входящих ссылок по результатам выдачи Яндекс.Блогов вместо Technorati.

Открываем файл /wp-admin/index.php, примерно в районе 20-й строки ищем следующий блок кода:

<?php
$rss = @fetch_rss(‘http://feeds.technorati.com/cosmos/rss/?url=’. trailingslashit(get_option(‘siteurl’)) .’&partner=wordpress’);

if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<div id=»incominglinks»>
<h3><?php _e(‘Incoming Links’); ?> <cite><a href=»http://www.technorati.com/search/<?php echo trailingslashit(get_option(‘siteurl’)); ?>?partner=wordpress»><?php _e(‘More’); ?> »</a></cite></h3>
<ul>
<?php
$rss->items = array_slice($rss->items, 0, 10);
foreach ($rss->items as $item ) {
?>

Заменяем его на следующий код:

<?php
$rss = @fetch_rss(‘http://blogs.yandex.ru/search.rss?link=’. trailingslashit(get_option(‘siteurl’)). »);

if ( isset($rss->items) && 0 != count($rss->items) ) {
?>
<div id=»incominglinks»>
<h3><?php _e(‘Incoming Links’); ?> <cite><a href=»http://blogs.yandex.ru/search.xml?link=<?php echo trailingslashit(get_option(‘siteurl’)); ?>»><?php _e(‘More’); ?> »</a></cite></h3>

    <?php
    $rss->items = array_slice($rss->items, 0, 10);
    foreach ($rss->items as $item ) { /* converting link title from Win-1251 to UTF-8 */ $item[‘title’] = iconv(«CP1251», «UTF-8», $item[‘title’]);
    ?>

Update: видимо в WordPress 2.0.5 принудительно перекодировать заголовок ссылки не нужно, т.е. строку /* converting link title from Win-1251 to UTF-8 */ $item[‘title’] = iconv(«CP1251», «UTF-8», $item[‘title’]); можно просто убрать.


26 Responses to “WordPress: Яндекс.Блоги вместо Technorati”

  1. Обсудите эту новость на news2.ru

  2. Вэ:

    спасибо! отличный пост…

  3. сергей:

    у меня выдает ошибку )))

  4. ругается на отсутствие iconv?

  5. сергей:

    Parse error: parse error, unexpected ‘:’ in /home/yiyjabkfoz/skomi.com/wp-content/themes/blue/index.php on line 21

  6. сергей:

    у меня вот такой код в начале страницы…может подскажете что исправть…я в php не силен )))


    «>

    Digg
    «>Del.icio.us

  7. сергей:

    блин ! прошу прощения. хотел указать код (((

  8. Parse error: parse error, unexpected ‘:’ in /home/yiyjabkfoz/skomi.com/wp-content/themes/blue/index.php on line 21

    так это проблема в файле темы, а не в /wp-admin/index.php.

    видимо вы там что-то не то поменяли. попробуйте зайти сразу в панель администратора: skomi.com/wp-admin/

  9. сергей:

    ну да перепутал :-) но ошибка все равно вылазит хоть тресни….

  10. сергей:

    и как правильно настроить плагин для picasa ? установил его а где настройки. прошу не пинать — я только учусь )))

  11. перепроверьте все одинарные и двойные кавычки. при копировании кода прямо с этой страницы они могут быть заменены на знак вопроса.

    еще я столкнулся с одной странной вещью. в одном моём блоге заголовки ссылок приходится перекодировать ($item[’title’] = iconv(”CP1251″, “UTF-8″, $item[’title’]);) а в другом — нет.

    первый блог работает на движке WordPress MU 1.0, второй под 2.0.5.

  12. это не просто плагин, а виджет. для того, чтобы он заработал нужно установить Widgets Plugin (widgets.wordpress.com)

  13. сергей:

    все равно ошибка ! все проверил !
    $rss = @fetch_rss(’http://blogs.yandex.ru/search.rss?link=’. trailingslashit (get_option(’siteurl’)). ’’);
    ругается именно вот на эту строчку…
    кодировка у меня стоит по умолчанию….

  14. самые последние две кавычки должны быть одинарными.

    какая именно ошибка?

  15. сергей:

    Parse error: parse error все таже

  16. сергей:

    Parse error: parse error, unexpected T_STRING

  17. сергей:

    исправил все кавычки стало выдавать такое
    Parse error: parse error, unexpected $ in /home/yiyjabkfoz/skomi.com/wp-admin/index.php on line 166
    это последняя строка в файте

  18. перед какой-то переменной не хватает знака $ или где-то отсуствует точка с запятой. советую вернуть на место старый файл и поменять только вот эту строчку: (’http://feeds.technorati.com/cosmos/rss/?url=’. trailingslashit(get_option(’siteurl’)) .’&partner=wordpress’);

    на вот эту: (’http://blogs.yandex.ru/search.rss?link=’. trailingslashit(get_option(’siteurl’)). ‘’);

    для того, чтобы указать фид, и вот эту <a href=”http://www.technorati.com/search/< ?php echo trailingslashit(get_option(’siteurl’)); ? rel="nofollow">?partner=wordpress”>

    на вот эту <a href=”http://blogs.yandex.ru/search.xml?link=< ?php echo trailingslashit(get_option(’siteurl’)); ? rel="nofollow">”> чтобы ссылка вела на сайт я.блоги вместо технорати.

    ну и можно в конце добавить /* converting link title from Win-1251 to UTF-8 */ $item[’title’] = iconv(”CP1251″, “UTF-8″, $item[’title’]); если русские символы не будут правильно отображаться.

  19. Для версии 2.1.2 и скорее всего более старших версий
    функция находится в файле wp-admin/index-extra.php
    Ищите строчку
    case ‘incominglinks’ :
    и вносите соответствующие изменения

  20. Ошибка, их-за которой код не работал — исправьте ВСЕ кавычки в коде — и ‘, и » и будет вам счастье…

  21. У меня почему-то нет такого когда в /wp-admin/index.php

  22. это относится к WP 2.1. Не уверен, что будет работать с более поздними версиями.

  23. в 2.0.7 и 2.3 конвертацию кодировок делать НУЖНО.

Прокомментировать