Этот день должен был когда-то настать! Я написал plugin для WP

Feb 07, 2014 11:48


Вчера было более, чем бурное обсуждение моего мотоцикла в моём ЖЖ. Это хорошо и приятно, но немного обидно то, что мои поклонники из facebook не могут об этом никак узнать. Если они увидели мою мудрую мысль в facebook и даже перешли на статью по ссылке, то они увидят, что в моём standalone блоге никто ничего не комментировал, и станут грустить. Поэтому я решил, что надо сделать так, чтобы в блоге было видно где находится пост в ЖЖ и сколько там комментариев. Сначала я очень хотел найти в коде WordPress фрагмент куда можно поставить ссылку, но потом понял, что все эти обновления WP и замена тем будут каждый раз приводить к тому, что сопровождать это неудобно.

Короче, я сделал это! У меня получился простейший плагин, который включается и выключается штатными средствами и пишет количество сообщений в соответствующем посте ЖЖ на русском языке в начало поста. Подразумевается, что сам кросспост был сделан плагином Livejournal Crossposter, потому что ссылка берётся из служебного поля этого плагина.

Если кто-то хочет сказать, что всё написано криво, то говорите. Мне всё равно будет приятно.


/*
Plugin Name: LiveJournal Link
Plugin URI: http://linux007.livejournal.com
Description: Плагин должен показывать где в ЖЖ почитать эту же запись
Version: 0.1
Author: Mikalai Beliashou
Author URI: http://beliashou.com
*/

function getCommentsNum($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/([0-9]+) comment/",$str,$title);
if ($title[1]>0) {
return ". Количество комментариев: ".$title[1];
}

}

}

add_filter( 'the_content', 'my_the_content_filter', 20 );
/**
* Add a icon to the beginning of every post page.
*
* @uses is_single()
*/
function my_the_content_filter( $content ) {

if ( is_single() )
// Add image to the beginning of each page
$ljurl=get_post_meta(get_the_ID(), 'ljURL', true);
if(!empty($ljurl)) {
$content = sprintf(
' Этот пост также доступен в моём ЖЖ%s

%s',
$ljurl, getCommentsNum($ljurl), $content
);
}
// Returns the content.
return $content;
}

?>
(c)

wp, php, linux, plugin, wordpress

Previous post Next post
Up