Leon1010

Я в Соц.сетях:

Теги:

Ссылки

Шорткоды в WordPress

Собрал подборку интересных примеров использования шорткодов в вордпрессе.

Приведение 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@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]

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

Данный шорт может показывать последнее изображение, прикрепленное к посту. Добавим этот шортик в 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>";
?>
Запись опубликована в рубрике Кодинг с метками .