Когнитивная психология и эмоции
Субъективные заметки постдока-психолога
Записи в рубрике «wordpress»

Плагин Mendeley для WordPress

13 марта 2011, оргвопросы Метки: ,

Добрые люди сделали для WordPress плагин для вывода данных из Mendeley, назвав его, как ни странно, WP Mendeley. Я его решил использовать для вывода списка своих публикаций на сайт, ибо лень самому обновлять в двух местах.

Сам плагин можно скачать тут, ну или поставить через dashboard, как обычно. Для вывода данных вам понадобится:

1) зарегистрировать свой сайт как приложение в Mendeley

2) получить Consumer Key и Consumer Secret для зарегистрированного приложения, ввести их в настройках плагина

3) нажать «Request and authorize token»

4) в любом посте/странице, где вы хотите выводить данные, ввести тег [mendeley type="xxx" id="xxx" groupby="xxx" filter="xxx"], где

  • type — тип документа, может быть равен «collections», «sharedcollections»/»shared», «documents», «groups»
  • groupby — группировка, необязательный, либо «authors», либо «year»
  • sortby — сортировка, необязательный, либо «authors», либо «year»
  • sortbyorder, groupbyorder — порядок сортировки/группировки, «asc» или «desc»
  • filter — фильтрация результатов, в формате [var=value], где var может быть author, editor, title, year, tag, keyword, url, publication_outlet, pages, issue, volume, city, publisher, abstract. Например, filter="author=Michael Koch".
  • id — идентификатор коллекции/группы/чего угодно. Получить можно нажав кнопку «Request (Shared) Collection Ids» в настройках. Специальное значение «authored» позволяет получить ваши публикации.

Таким образом, чтобы получить список своих публикаций надо вбить [mendeley type="documents" id="authored" groupby="year"].

Теперь последний маленький момент. Я чуть подправил плагин, чтобы сделать вывод списка примерно похожим на ГОСТ и по-русски. Скачать обновленный файл можно тут: Обновленный wp-mendeley.php для плагина WP Mendeley.

Отвратительный баг в LJ-comments-import: reloaded

5 февраля 2011, оргвопросы Метки: , ,

Нашел до отвратности неприятный баг в плагине LJ-comments-import: reloaded (это плагин для WordPress, импортирующий комментарии из ЖЖ в блог). Удаленные из жж комменты продолжали выводиться на сайте, соответственно, спама было выше крыши. Если вдруг кто использует сие творение, поменяйте файл lj_comments_import.php в папке с плагином на тот, что в этом архиве и обнулите кэш.

Редизайн

25 февраля 2010, оргвопросы Метки: , ,

Поменял дизайн сайта, теперь все стало похоже на комсомольскую правду, но, в целом, ничего. Тема для сай1та — переделка Evidens White студии Design Disease, весьма, кстати, симпатичные дизайнеры. На данный момент на сайте используются следующие плагины (это больше технический момент, но, может кому будет интересно):

продолжение »

Халява кончилась, Global Translator не работает

17 августа 2009, так просто Метки:

Мой блог какое-то время использовал Global Translator — плагин для WordPress для автоматического перевода страниц на другие языки. Теперь эта халява перестала работать — Гугл пропалил фишку и выдает следующие сообщения:

We’re sorry…

… but your computer or network may be sending automated queries.

To protect our users, we can’t process your request right now.

Рано или  поздно этого следовало ожидать. Если через пару дней не разбанит, придется отключить Global Translator

WordPress, Яндекс, редирект 301, зеркала www и без www

19 февраля 2009, оргвопросы Метки: , ,

Кажется я нашел решение проблемы.

Сначала, вкратце, о чем вообще речь. Допустим, у вас есть блог с адресом www.kakoy-to-blog.ru. И в один прекрасный день Вы решили, что в адресной строке браузера kakoy-to-blog.ru выглядит лучше без www. Меняем через общие настройки WordPress URL блога, и вуаля, со всех адресов с www идет редирект на адреса без www. Дальше начинаются проблемы. Если Гуглу можно просто сказать,что сайт нужно индексировать без www, то наш убогий любимый Яндекс начинает всячески гнобить Ваш блог.  Страницы начинают пропадать из индекса Яндекса, пока в конце-концов не остается куцая главная страница по старому адресу с www без описания. Почему так происходит? Все довольно просто — Яндекс продолжает считать главным зеркалом Вашего сайта адрес www.kakoy-to-blog.ru, а kakoy-to-blog.ru просто ненужным придатком. Согласно официальному описанию, чтобы этого не происходило, необходимо создать файл robots.txt в корневом каталоге сайта и прописать там для Яндекса директиву Host. В итоге robots.txt для него может выглядеть примерно так:

User-agent: Yandex
Disallow:
Host: kakoy-to-blog.ru

Но это, как оказалось только начало пути. Для Яндекса директива Host является лишь рекомендацией, и может не соблюдаться, кроме того время «склейки» зеркал занимает от 4 до 6 недель, а в некоторых случаях по непонятным причинам не происходит вовсе. Интересно, Лебедев про это убожество знает? В моем случае, после трех месяцев мурыженья Яндексом, я решил, что ожидание слишком затянулось. Предложенное Иваном Ширко решение этой проблемы мне не понравилось — он предлагает, по сути, просто вырубить все редиректы WordPress, заменив их редиректами в htaccess. Сразу возникают две проблемы: во-первых, Яндекс не может забрать robots.txt, поскольку он лежит не на том домене, а во-вторых, на сайте возникает в поисковых индексах возникает множество дублирующих друг друга страниц — с www и без www, со слэшем на конце и без него и прочие. Кроме того, один из ответов техподдержки Яндекса выглядит следующим образом:

Передача эффекта ссылок при склеивании зеркал

Прописывание директивы Host, если при этом сайты работают и отдают роботу 200, при этом с них не установлены редиректы, не удаляют сайты из базы до тех пор, пока зеркала не подклеятся к одному из сайтов. Тем не менее, в любом случае зеркала будут удалены из поисковой базы, в поиске должен остаться только один сайт из группы одинаковых сайтов. Host использовать рекомендуется, так как это позволяет роботу явно указать на адрес главного зеркала.

Измените код главных страниц на неосновных зеркалах так, чтобы все (или почти все) ссылки с них вглубь сайта были абсолютными и вели на основное зеркало. Этого шага достаточно для переклейки

301-й редирект со старых страниц на новые ставить можно. Но, до момента переклейки все страницы, с которых будет стоять редирект будут удалены из базы, эффект ссылок передаваться не будет.

Страницы с серверным редиректом удаляются из базы — http://webmaster.yandex.ru/faq.xml?id=502499#redirect. Эффект ссылок передаваться не будет.

Таким образом, задача заключается в следующем:

1) сделать так, чтобы Яндекс мог читать страницы по старым адресам

2) при этом, все внутренние ссылки должны указывать на нужное зеркало сайта

3) и должны сохраняться остальные редиректы WordPress

Я решил эту проблему достаточно грубо. но, вроде бы, эффективно: в файле wp-includes/canonical.php (это на WordPress 2.7, на более старых версиях вроде бы нужно редактировать wp-includes/functions.php) в функции redirect_canonical нужно найти строчки

if ( !empty($user_home['host']) )
		$redirect['host'] = $user_home['host'];

и строчки

if ( strtolower($original['host']) == strtolower($redirect['host']) ||
		( strtolower($original['host']) != 'www.' . strtolower($redirect['host']) &&
 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) )
		$redirect['host'] = $original['host'];

и закомментировать их (добавить /* до них и */ после них). У меня эти строчки идут на 196 и 254 строке canonical.php. В результате WordPress будет отдавать страницы и по старым адресам, но все ссылки будут вести на новые адреса. Можете попробовать: работает и http://www.chetvericov.ru/zametki/naskolko-nuzhen-mozg-dlya-zhizni-cheloveka/, и  http://chetvericov.ru/illyuzii/fokus-s-izcheznoveniem-slepota-vyzvannaya-dvizheniem/.

Будем надеяться, что это поможет объяснить Яндексу, какое зеркало главное. Понятно, что этот способ не лишен недостатков — в частности, при обновлении WordPress стоит проследить. чтобы внесенные изменения сохранились, но ничего лучше пока не вижу.