Archive for the 'WordPress' Category

03ДекОтображение в WordPress RSS-фидов

WordPress — это не только очень хорошая CMS и движок для блога, но и, помимо всего прочего, еще и… RSS-ридер. Чтобы превратить WP в читалку ваших любимых RSS-лент, достаточно выполнить одно простейшее действие: вставить следующий код в нужное место (там, где вы хотите видеть эти фиды), например, это может быть свой шаблон страницы.

< ?php if(function_exists('fetch_feed')) {

	include_once(ABSPATH.WPINC.'/feed.php');
	$feed = fetch_feed('http://mysite.com/feed/');

	$limit = $feed->get_item_quantity(7); // указать кол-во отображаемых сообщений фида
	$items = $feed->get_items(0, $limit); // создается массив элементов

}
if ($limit == 0) echo '
Эта лента не обновлялась или недоступна.
'; else foreach ($items as $item) : ?>
< ?php echo substr($item->get_description(), 0, 200); ?> [...]
< ?php endforeach; ?>

Не забудьте указать нужный адрес ленты в строке 4.

14ОктКнопка ReTweet от TweetMeme

Твиттер сегодня, что назвается, “наше все” и сервисы к нему появляются (и умирают) с фантастической скоростью. Одним из десятков (если уже не сотен) является сервис TweetMeme, который можно назвать своего рода “Digg для Твиттер”. Кому не хотелось бы, чтобы посты с его блога отправлялись на TweetMeme с такой же легкостью, как и на Digg? Для этого умные люди (то есть не я :)) придумали простое решение.
В functions.php вашей темы добавьте вот такой простой код:

function tweetmeme(){
	return '
'; } add_shortcode('tweet', 'tweetmeme');

и… все! Теперь при написании поста, вставьте в пост (в HTML-режиме) шорт-код [tweet] и он отобразит кнопку от TweetMeme.

05СенWordPress MySQL инъекция – как избежать атаки

Как оказалось, на днях многие блоги на WordPress были подвергнуты MySQL-инъекции, которая портит постоянные ссылки (пермалинки), превращая их, таким образом, в нерабочие. Это короткая статья о том, как исправить эту ситуацию.

Атакованные блоги подвергаются хаку, который добавляет к пермалинку

%&({${eval(base64_decode($_SERVER[HTTP_REFERER]))}}|.+)&%/

или

“/%&(%7B$%7Beval(base64_decode($_SERVER%5BHTTP_EXECCODE%5D))%7D%7D|.+)&%

После этого пермалинк, конечно, перестает работать и получить доступ к посту можно, только если удалить этот добавленный код.

Лечение:

1. Перейти в админке к Setting->Permalinks и удалить вышеуказанный код.
2. Перейти к пользователям, там обнаружится больше пользователей с административными правами, чем обычно.
3. Провести мышкой над каждым, чтобы вычислить последнего зарегистрировавшегося.
4. У этого пользователя правым кликом скопировать ссылку Редактирование/Edit и вставить его в адресную строку, увеличить номер на 1.
5. Вы должны получить скрытого админа со странным кодом в поле Имя. Удалите код, чтобы понизить его статус до Подписчика, затем снова перейдите к Пользователям и удалите его.

На этом все. Не забывайте вовремя обновляться до последних версий.

18АвгОтображение комментариев под записью

(Когда писать особо не о чем, а ГосДеп требует отрабатывать вложенное бабло – приходиться заниматься переводами, ибо большинство оф. планктона, которое хочет приобщиться к волшебному миру WP, все равно не может ни черта прочитать на иностранных источниках.)

Ну тогда вот вам простенький пример: как отобразить комментарии к посту прямо под ним на главной странице. Берется вот такой код:

< ?php
  global $withcomments;
  $withcomments = true;
  comments_template("/inline-comments.php");
?>

и вставляется в нужное место в файле index.php
Файл inline-comments.php понадобится как шаблон для правильного форматирования комментариев. Можно, конечно, извратиться и использовать файл comments.php, но т.к. там предусмотрено форматирование отображение комментариев для отдельной записи, можно быть увереным, что результат будет выглядеть более чем некрасиво.

11АвгПлагин для вставки видео от Allmedia.Uz в WordPress, v. 1.1

Мини-обновление плагина для вставки видеороликов от видеохостинга AllMedia.Uz. Это обновление включает в себя добавление quicktag-кнопки в HTML-редактор WP.
Использование:
1. Распаковать и закачать плагин в папку плагинов Вашего блога (/wp-content/plugins). Обратите внимание, что закачивать нужно всю папку целиком, так чтобы получилось /wp-content/plugins/allmedia/.
2. Активировать плагин.
3. Чтобы вставить видео, нажмите в HTML-редакторе кнопку allmedia. Это вставит в текст поста следующий шорткод: [allmedia=http://allmedia.uz/video/]. После конечного слэша и перед закрывающей квадратной скобкой введите ID нужного видео, так чтобы у Вас получился следующий код, например для ID 123:
[allmedia=http://allmedia.uz/video/123]

Скачать Allmedia video plugin v. 1.1

07АвгПлагин для вставки видео от Allmedia.Uz в WordPress

Набросал небольшой плагин для быстрого вставки видео от нашего видеохостинга Allmedia. Код основан/заимствован/подсмотрен во множестве других плагинов для вставки видео в WordPress. Для удобства плагин использует так называемые шорткоды (shortcodes) для вставки видео.

Как пользоваться плагином.
1) Скачать, разархивировать плагин в ваш блог и активировать его.
2) С сайта Allmedia.uz получить URL нужного видео (поле “Ссылка”).
Allmedia.Uz
3) При написании поста в нужном месте ввести
[allmedia=...]
где … заменить на соответствующую ссылку на видео.


Скачать плагин “Быстрая вставка видео от allmedia.uz”

UPD: эта версия устарела, рекомендуется использовать версию 1.1

26ИюньРазграничение авторов по произвольным полям

Часто бывает, что при публикации записи необходимо указать стороннего пользователя как автора статьи. Конечно, WP позволяет создать аккаунт для этого автора и назначить ему авторство статьи. Но есть ли необходимость создавать аккаунт, если этот автор опубликуется всего лишь 1 раз? А что произойдет, если этот аккаунт удалить? Эта статья будет привязана к другому пользователю, который будет выбран при удалении. Не плодить же кучу 1-разовых аккаунтов. Тут нам приходят на помощь произвольные поля (custom fields). Для того, чтобы назначить авторство статьи стороннему лицу, при публикации создаем произвольное поле pauthor и назначаем ему в виде значения автора, например Вася Пупкин. Если у Васи Пупкина есть сайт, на который можно сослаться, создаем еще одно поле pauthurl и пишем ссылку http://… как значение.

В файлах темы index.php и single.php разместите вот такой код:

< ?php
$pauthor = get_post_meta ($post->ID, 'pauthor', TRUE);
if ($pauthor) :
    echo "".$pauthor."";
else :
    the_author_posts_link();
endif;
?>

Это правило (строки 2, 3, 4 кода) будет выводить сторонних автором простым текстом (либо ссылкой, если укажете), а ваши “штатные” авторы будут выводиться обычной функцией WP the_author_posts_link(); (строка 6 в вышеуказанном коде), если произвольные поля отсутствуют.

16ИюньОпределение браузера посетителя в WordPress

Чтобы определить, каким браузером пользуется посетитель вашего блога, нужно всего лишь в файл functions.php вашей темы добавить вот такой код:

< ?php
add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
	global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;

	if($is_lynx) $classes[] = 'lynx';
	elseif($is_gecko) $classes[] = 'gecko';
	elseif($is_opera) $classes[] = 'opera';
	elseif($is_NS4) $classes[] = 'ns4';
	elseif($is_safari) $classes[] = 'safari';
	elseif($is_chrome) $classes[] = 'chrome';
	elseif($is_IE) $classes[] = 'ie';
	else $classes[] = 'unknown';

	if($is_iphone) $classes[] = 'iphone';
	return $classes;
}
?>

Эта функия автоматически добавит к тэгу BODY свой CSS-класс:


Остается лишь добавить в файл стилей соответствующие классы.

08ИюньАвтообновление плагинов и ядра WordPress через FTP

Автообновление ядра и плагинов WordPress, впервые представленное в версии 2.7 донельзя облегчило жизнь всем, пользующимся этим движком. Но на некоторых хостингах, в зависимости от настроек, автообновление не работает в автоматическом режиме (вот такая тавтология!) и просит пользователей ввести в предлагаемую вместо обновления форму параметры ФТП – хост, логин, пароль. На одном из хостингов я столкнулся с тем, что данная форма наотрез отказывалась принимать предлагаемые сервер, логин и пароль и сообщала, что “connect failed”. Поиски решения в гугле навели на следующие варианты решения:

1. В форме вместо обычного имени сервера, типа mydomain.ru, попробовать ввести localhost или localhost:21 (это у меня сработало)
2. Чтобы не вводить хост, логин и пароль каждый раз, можно их прописать в файле wp-config.php в таком формате:

define("FTP_HOST", "domain.com");
define("FTP_USER", "ftpusername");
define("FTP_PASS", "ftppassword");

Первая строка – это сервер, там нужно ввести имя сервера в зависимости от того, как он у вас работает – по домену или localhost :). Вторая и третья – FTP-логин и пароль соответственно.
Надеюсь, это кому-нибудь поможет.

08ИюньОтображение рубрик в WordPress в 2 колонки

Простейший прием позволяет заменить традиционный 1-колоночный вывод рубрик в блоге на отображение рубрик в 2 колонки.

1. Нужно найти в файле темы (чаще всего в sidebar.php) стандартный код вывода рубрик, обычно это:

< ?php wp_list_categories() ?>

2. Заменить его на

< ?php
$cats = explode("",wp_list_categories('title_li=&echo=0&depth=1&style=none'));
$cat_n = count($cats) - 1;
for ($i=0;$i< $cat_n;$i++):
if ($i<$cat_n/2):
$cat_left = $cat_left.'
  • '.$cats[$i].''; elseif ($i>=$cat_n/2): $cat_right = $cat_right.'
  • '.$cats[$i].'
  • '; endif; endfor; ?>
      < ?php echo $cat_left;?>
      < ?php echo $cat_right;?>

    Все!




    Спонсоры: Sherbrooke players choose slap-up rtg casinos and web-site onlinecasinoearning.com.