Толик Панков
hex_laden
............ .................. ................
October 2030
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Толик Панков [userpic]
Плагин, отображающий пользователей ЖЖ/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

Это репост заметки из моего блога на сайте http://tolik-punkoff.com
Оригинал заметки находится здесь: http://tolik-punkoff.com/2016/07/28/plagin-otobrazhayushhij-polzovatelej-zhzh-ljr-v-bloge-wordpress-v-stile-zhzh-lzhr/

Tags: , ,