Плагин, отображающий пользователей ЖЖ/LJR в блоге WordPress в стиле ЖЖ/ЛЖР

Т.е. в виде ссылки с «головастиком», как в тестовом посте

Плюс добавим возможность открывать страницу пользователя ЖЖ/LJR в отдельном окне (вкладке)

Как работает стандартная ссылка на блог в ЖЖ/ЛЖР

При добавлении псевдотега <ljr user="username"> или <lj user="username">, данный псевдотег заменяется на ссылку с дополнительной картинкой-головастиком перед ней, клик по картинке ведет к открытию страницы userinfo пользователя ЖЖ и LJR, а клик по имени пользователя — к открытию главной страницы пользователя блогосервиса. Если вставить в пост на LJR псевдотег <lj user="username">, то к имени пользователя будет добавлена дополнительная строка — username@lj, указывающая, что дневник пользователя находится в Живом Журнале.

Что делает плагин

— обрабатывает шорткоды вида [ljr user="username"] или [lj user="username"],
— вставляет на их место в посте «головастика», пользователя того или иного сервиса, дописывая в конце имени префикс @lj или @ljr, и проставляет все нужные ссылки.
— Если указан параметр blank=1, например [ljr user="hex_laden" blank=1], то ссылки на userinfo (при клике по «головастику») или ссылка на главную страницу блога, откроются в новом окне/вкладке.

Подготовка к созданию плагина.

1. В wp-content/plugins, создаем отдельный каталог lj-ljr-users, в нем подкаталог img, и загружаем туда графические файлы «головастиков» http://lj.rossia.org/img/userinfo.gif и http://lj.rossia.org/img/userinfo-lj.gif
2. Создаем файл lj-ljr-users.php в каталоге wp-content/plugins/lj-ljr-users и вставляем в него нижеследующий код.

Код плагина


<?php
/*
Plugin Name: LJ and LJR users shortcodes
Description: adding lj and ljr-like style links on users/blogs LJ and LJR
Version: 0.0.1
Author: Tolik Punkoff & IDT
Author URI: http://tolik-punkoff.com/
License: any
*/

function ljruser_shortcode($atts)
{
	extract(shortcode_atts(array(
		      'user' => '',
		      'blank' => 0,
		), $atts));
	$ret='';
	$target='';
	
	if ($blank==1) $target='target="_blank"';
	
	if ($user=='')
	{
		$ret="<b>[Bad username in LJ tag]</b>";
	}
	else
	{
		$ret = '<span class="ljruser" style="white-space: normal;">';
		$ret = $ret . '<a href="http://lj.rossia.org/userinfo.bml?user=';
		$ret = $ret . $user . '" ' . $target . '>';
		$ret = $ret . '<img src="' . content_url() . '/plugins/lj-ljr-users/img/userinfo-ljr.gif" alt="[info]" style="vertical-align: top; border: 0;" /></a>';
		$ret = $ret . '<a href="http://lj.rossia.org/users/' . $user . '/" ' . $target . '>';
		$ret = $ret . '<b>' . $user . '@ljr' . '</b></a></span>';
	}

	return $ret;
}

function ljuser_shortcode($atts)
{
	extract(shortcode_atts(array(
		      'user' => '',
		      'blank' => 0,
		), $atts));
	$ret='';
	$target='';
	
	if ($blank==1) $target='target="_blank"';
	
	if ($user=='')
	{
		$ret="<b>[Bad username in LJ tag]</b>";
	}
	else
	{
		$ret = '<span class="ljruser" style="white-space: normal;">';
		$ret = $ret . '<a href="http://livejournal.com/userinfo.bml?user=';
		$ret = $ret . $user . '" ' . $target . '>';
		$ret = $ret . '<img src="' . content_url() . '/plugins/lj-ljr-users/img/userinfo-lj.gif" alt="[info]" style="vertical-align: top; border: 0;" /></a>';
		$ret = $ret . '<a href="http://livejournal.com/users/' . $user . '/" ' . $target . '>';
		$ret = $ret . '<b>' . $user . '@lj' . '</b></a></span>';
	}

	return $ret;		
}

add_shortcode ('lj','ljuser_shortcode');
add_shortcode ('ljr','ljruser_shortcode');

?>

Небольшие минусы

— Css встроено сразу в плагин и заточено под тему оформления, которую юзаю я, по-хорошему, надо стилевые настройки из плагина вымести, и чтоб они прописывались в styles.css
— не определяется, пользователь это или сообщество. Но с другой стороны, это чрезмерно бы усложнило код и стабильность, вызвав необходимость обращаться к серверам блогосервисов (и обрабатывать случаи, если сервера «лежат»).
— ну может еще какие мелкие недочеты, кому надо — берите и сами исправляйте.

Скачать.

PHP-код на pastebin
Готовый плагин с mega.nz

2 Responses to Плагин, отображающий пользователей ЖЖ/LJR в блоге WordPress в стиле ЖЖ/ЛЖР

  1. Pingback: Страница со списком тегов (или рубрик) WordPress | Персональный блог Толика Панкова

  2. Pingback: Полезные плагины для WordPress | Персональный блог Толика Панкова

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *