Собрал подборку интересных примеров использования шорткодов в вордпрессе.
Приведение 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:'.$encodedmail.'">'.$encodedmail.'</a>';
}
add_shortcode('mailto', 'cwc_mail_shortcode');
И можете не беспокоиться о своём мыле в спам базах. Просто оберните мыло в теги
[mailto][email protected][/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]
Показ прикрепленных изображений к посту
Данный шорт может показывать последнее изображение, прикрепленное к посту. Добавим этот шортик в 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 '<div
class="postimage"
style="width: '.$width.'px; height: '.$height.'px; float: '.$float.';">
'.$fullimage.'
</div>';
}
}
add_shortcode("postimage", "cwc_postimage");
И в посте добавим тег
[postimage]Добавить кнопку ссылку
Вместо того чтоб делать ссылкой простой текст, можно это сделать в виде шордкода. Так намного удобнее и можно подогнать вид кнопки как вам угодно через CSS.
function mydl($atts) {
extract(shortcode_atts(array(
"url" => '',
"title" => '',
), $atts));
return '<div class="dl"><a title="Скачать '.$title.'" href="'.$url.'" target="_blank">Скачать '.$title.'</a></div>';
}
add_shortcode("dl", "mydl");
Чтобы разместить ссылку в пост, надо вставить шорткод в нужное место поста.
[dl url="ЗДЕСЬ ВСТАВЛЯЕМ ССЫЛКУ" title="ЗДЕСЬ ПИШЕМ НАЗВАНИЕ"]
Для оформления кнопки вставляем код в style.css
dl {
background: url(/images/dl.png) no-repeat left center;
margin:10px;
padding:10px;
border:1px solid #ccc;
background:#fcfcfc;
border-radius:3px;
-moz-border-radius:3px;
-khtml-border-radius:3px;
-webkit-border-radius:3px;
display:inline-block;
}
.dl a {
padding-left: 24px
Добавляем в пост рекламу от гугла
function showads() {
return '<div id="adsense"><script type="text/javascript"><!--
google_ad_client = "pub-12345678";
google_ad_slot = "54321565498";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>';
}
add_shortcode('adsense', 'showads');
теперь в нужном месте мы можем вывести рекламу [adsense]
Шорткод вывода любого поста на любой странице
function tr_post_include($atts) {
$thepostid = intval($atts[id]);
$output = '';
query_posts("p=$thepostid");
if (have_posts()) : while (have_posts()) : the_post();
$output .= get_the_content($post->ID);
endwhile; else:
// ничего не выводит
endif;
wp_reset_query();
return $output;
}
add_shortcode("pst_inc", "tr_post_include");
Пример использования шорткода:
[pst_inc id="XX"]XX — это ID поста. Довольно простой шорткод: просто указываете ID поста, и его содержимое выводится в нужном месте страницы. Если вы ничего не укажете или укажете несуществующий ID, то шорткод просто ничего не выведет. Шорткод удобен тем, что с его помощью можно обойтись без создания специального шаблона для такой страницы.
Чтобы шоткод работал в виджете
add_filter('widget_text', 'do_shortcode');
Добавить в functions.php и всё заработает.
Как вывести все шорткоды блога
В шаблон надо вставить:
<?php global $shortcode_tags; echo "<pre>"; print_r($shortcode_tags); echo "</pre>"; ?>





Base 64 Декодер
SEO анализатор
Транслитератор