WordPress шорткоды

8 октября 2011 г.

10 практичных WordPress шорткодов

Шорткоды – пользовательские функции, которые сохраняют время при написании поста в WordPress. Сегодня я хочу представить Вам 10 самых используемых WordPress шорткодов.
Wordpress лого

Показать скриншот любого сайта

Вы хотите сделать скриншот какого-либо сайта и показать его у себя на сайте? Этот классный wordpress код поможет Вам в этом. Скопируйте этот код в файл functions.php:

function wpr_snap($atts, $content = null) {
extract(shortcode_atts(array(
"snap" => 'http://s.wordpress.com/mshots/v1/',
"url" => 'http://www.google.ru/’,
"alt" => 'Google',
"w" => '400',
"h" => '300' 
), $atts));
$img = '<img src="http://&#39; . $snap . &#39;&#39; . urlencode($url) . &#39;?w=&#39; . $w . &#39;&amp;h=&#39; . $h . &#39;" alt="&amp;#39; . $alt . &amp;#39;"/>';
return $img;
}
add_shortcode("snap", "wpr_snap");

На этом всё. Теперь чтобы посмотреть скриншот Yandex, добавьте пост со следующим содержанием:
[snap url="http://www.yandex.ru/" alt="Yandex" w="400" h="300"]

Добавить ссылку для пожертвований Paypal

Многие блоггеры размещают подобную ссылку на своем блоге и просят читателей помочь им материально. Если все же PayPal включит для России приём денег, можно добавить этот шортик к себе в functions.php:

function cwc_donate_shortcode( $atts ) {
extract(shortcode_atts(array(
'text' => 'Есть мелочь?',
'account' => 'REPLACE ME',
'for' => 'Habr',
), $atts));
global $post;
if (!$for) $for = str_replace(" ","+",$post->post_title);
return '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=cxlick&amp;amp;business=&#39;.$account.&#39;&amp;amp;item_name=Donation+for+&#39;.$for.&#39;">'.$text.'</a>';
}
add_shortcode('donate', 'cwc_donate_shortcode');

И в нужном месте
[donate]

Приведение email-адреса к кликабельному виду

Любой блог на WordPress конечно же связан со спамом. Если Вы показываете на своём сайте email-адреса пользователей или же свою любимую почту, то можете немного усложнить жизнь спамерам в сборе почты. Просто добавить этот код в functions.php:

function cwc_mail_shortcode( $atts , $content=null ) {
for ($i = 0; $i < strlen($content); $i++) $encodedmail .= "&#" . ord($content[$i]) . ';';
return '<a href="mailto:&#39;.$encodedmail.&#39;">'.$encodedmail.'</a>';
}
add_shortcode('mailto', 'cwc_mail_shortcode');

И можете не беспокоиться о своём мыле в базах африканских миллиардеров, которые завещали Вам все, что у них есть. Просто оберните мыло в теги
[mailto]email@yourdomain.ru[/mailto]

Создание приватного контента

Всегда хочется, чтобы не копипастили контент с сайта. Можно сделать показ определенного контента только зарегистрированным. Добавляем это в functions.php:

function cwc_member_check_shortcode( $atts, $content = null ) {
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return '';
}
add_shortcode( 'member', 'cwc_member_check_shortcode' );

И оборачиваем контент в теги
[member]Этот текст доступен для просмотра только зарегистрированным пользователям.[/member]

Показ PDF в фрейме

Есть хороший способ, чтобы показать содержание pdf-файла на сайте. На помощь приходит Google docs. Добавляем новую функцию в functions.php:

function cwc_viewpdf($attr, $url) {
return '';
}
add_shortcode('embedpdf', 'cwc_viewpdf');

И в контенте для вставки pdf используем данный тег:
[embedpdf width="600px" height="500px"]http://infolab.stanford.edu/pub/papers/google.pdf[/embedpdf]

“Feed only” контент

Данный шортик позволяет показывать определённый контент только RSS-подписчикам. И опять же добавляем функцию в functions.php:

function cwc_feedonly_shortcode( $atts, $content = null) {
if (!is_feed()) return "";
return $content;
}
add_shortcode('feedonly', 'cwc_feedonly_shortcode');

И оборачиваем контент, хоторый хотим показать подписчикам в теги
[feedonly]Дорогие подписчики, да храни Вас бог.[/feedonly]

Ссылка “Retweet”

Многие знают, что твиттер – это генератор трафика для блога. А ретвиты еще больше увеличивают трафик на сайт.

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

И в нужном месте
[retweet]

Показ прикрепленных изображений к посту

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

function cwc_postimage($atts, $content = null) {
extract(shortcode_atts(array(
"size" => 'thumbnail',
"float" => 'none'
), $atts));
$images =& get_children('post_type=attachment&post_mime_type=image&post_parent=' . get_the_id() );
foreach( $images as $imageID => $imagePost )
{
$fullimage = wp_get_attachment_image($imageID, $size, false);
$imagedata = wp_get_attachment_image_src($imageID, $size, false);
$width = ($imagedata[1]+2);
$height = ($imagedata[2]+2);
return ''.$fullimage.'';
}
}
add_shortcode("postimage", "cwc_postimage");

И в посте добавим тег
[postimage]

Видео с Youtube

Если Вы хотите запостить видео с Youtube на своём блоге, то добавим функцию в functions.php:

function cwc_youtube($atts) {
extract(shortcode_atts(array(
"value" => '',
"width" => '475',
"height" => '350',
"name"=> 'movie',
"allowFullScreen" => 'true',
"allowScriptAccess"=>'always',
), $atts));
return '

И в посте можно использовать тег
[youtube value="http://www.youtube.com/watch?v=1aBSPn2P9bg"]

Показ RSS ленты

И на последок, можно показать произольную RSS-ленту в посте с помощью функции

include_once(ABSPATH.WPINC.'/rss.php');
function cwc_readRss($atts) {
extract(shortcode_atts(array(
"feed" => '',
"num" => '1',
), $atts));
return wp_rss($feed, $num);
}
add_shortcode('rss', 'cwc_readRss');

и тега
[rss feed="http://feeds.feedburner.com/catswhocode" num="5"]

Теги:
рубрика Сайтостроение