10 коротких кодов для wordpress(shortcodes)

wp-code_nДоброе время суток уважаемые блоггеры или те, кто шарится по страницам моего блога!

Сегодня я представляю вам сборочку коротких кодов(или так называемых shortcodes)  для . Кому не интерестно пусть не читают, эти коды для тех кому они дейтвительно нужны.

А если вам интерестно что я могу написать в будущем жмите СЮДА!!!

Что такое такое shortcode?  Это коды, которые можно вставлять в записи.

Как это работает? В файле functions.php пишется некая функция, а в пост уже вставляется короткий . Детальнее вы прочитаете на WordPress Codex: Shortcodes reference

Вот пример:

1
2
3
function cooledit() {
    return 'Have you checked out <a href="http://cooledit.org.ua">Cool Edit</a> today?';
}

После этого надо добавить функцию add_shortcode() function:

1
add_shortcode ( 'Cool', 'cooledit');

Ну а теперь, можно использовать короткий код во время написания поста в HTML-режиме:

1
[Cool]

1.Список похожих постов.

В принципе плагин simpletags это может делать , этот код тем, кто не хочет засорять свой wordpress дополнительными плагинами.

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
32
33
34
35
36
37
38
39
40
41
function related_posts_shortcode( $atts ) {
        extract(shortcode_atts(array(
            'limit' => '5',
        ), $atts));
 
        global $wpdb, $post, $table_prefix;
 
        if ($post->ID) {
                $retval = '<ul>';
                // Get tags
                $tags = wp_get_post_tags($post->ID);
                $tagsarray = array();
                foreach ($tags as $tag) {
                        $tagsarray[] = $tag->term_id;
                }
                $tagslist = implode(',', $tagsarray);
 
                // Do the query
                $q = "SELECT p.*, count(tr.object_id) as count
                        FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id  = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
                                AND p.post_status = 'publish'
                                AND p.post_date_gmt < NOW()
                        GROUP BY tr.object_id
                        ORDER BY count DESC, p.post_date_gmt DESC
                        LIMIT $limit;";
 
                $related = $wpdb->get_results($q);
                if ( $related ) {
                        foreach($related as $r) {
                                $retval .= '<li><a title="'.wptexturize($r->post_title).'" href="'.get_permalink($r->ID).'">'.wptexturize($r->post_title).'</a></li>';
                        }
                } else {
                        $retval .= '
        <li>No related posts found</li>';
                }
                $retval .= '</ul>';
                return $retval;
        }
        return;
}
add_shortcode('related_posts', 'related_posts_shortcode');

Сам код:

1
[related_posts]

2.Вставка Google диаграмм.

У Google есть сервис под названием Google Charts API, есть простой способ использования этих графиков в своём wordpress блоге.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
function chart_shortcode( $atts ) {
        extract(shortcode_atts(array(
            'data' => '',
            'colors' => '',
            'size' => '400x200',
            'bg' => 'ffffff',
            'title' => '',
            'labels' => '',
            'advanced' => '',
            'type' => 'pie'
        ), $atts));
 
        switch ($type) {
                case 'line' :
                        $charttype = 'lc'; break;
                case 'xyline' :
                        $charttype = 'lxy'; break;
                case 'sparkline' :
                        $charttype = 'ls'; break;
                case 'meter' :
                        $charttype = 'gom'; break;
                case 'scatter' :
                        $charttype = 's'; break;
                case 'venn' :
                        $charttype = 'v'; break;
                case 'pie' :
                        $charttype = 'p3'; break;
                case 'pie2d' :
                        $charttype = 'p'; break;
                default :
                        $charttype = $type;
                break;
        }
 
        if ($title) $string .= '&chtt='.$title.'';
        if ($labels) $string .= '&chl='.$labels.'';
        if ($colors) $string .= '&chco='.$colors.'';
        $string .= '&chs='.$size.'';
        $string .= '&chd=t:'.$data.'';
        $string .= '&chf='.$bg.'';
 
        return '<img title="'.$title.'" src="http://chart.apis.google.com/chart?cht='.$charttype.''.$string.$advanced.'" alt="'.$title.'" />';
}
add_shortcode('chart', 'chart_shortcode');

Для записи:

1
[chart data="41.52,37.79,20.67,0.03" bg="F7F9FA" labels="Reffering+sites|Search+Engines|Direct+traffic|Other" colors="058DC7,50B432,ED561B,EDEF00" size="488x200" title="Traffic Sources" type="pie"]

3.Простая интеграция Adsense.

Бывают ситуации, когда рекламу хочеться видеть прямо в записи, хотя кого я обманываю, я хочу чтобы она всегда там была. )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function showads() {
    return '<script type="text/javascript"><!--
google_ad_client = "pub-2770189460599954";
/* inside_code */
google_ad_slot = "8449324069";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>';
}
 
add_shortcode('adsense', 'showads');

И сам код:

1
[adsense]

4.Вывод информации об авторе.

Если на вашем блоге пишут несколько авторов, то эта функция может пригодиться.

1
2
3
4
5
6
7
8
9
function access_check_shortcode( $attr, $content = null ) {
    extract( shortcode_atts( array( 'capability' => 'read' ), $attr ) );
    if ( current_user_can( $capability ) && !is_null( $content ) && !is_feed() )
        return $content;
 
    return 'Sorry, only registered members can see this text.';
}
 
add_shortcode( 'access', 'access_check_shortcode' );

Код в пост:

1
[access capability="switch_themes"]

5. Вывод rss читалки.

Очень удобное интегрирование RSS читалки в вашу запись, когда-нибудь это пригодиться!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
//This file is needed to be able to use the wp_rss() function.
include_once(ABSPATH.WPINC.'/rss.php');
 
function readRss($atts) {
    extract(shortcode_atts(array(
        "feed" => 'http://',
      "num" => '1',
    ), $atts));
 
    return wp_rss($feed, $num);
}
 
add_shortcode('rss', 'readRss');

Код для записи:

1
[RSS Feed = "http://feeds2.feedburner.com/CoolEdit" NUM = "5"]

6. Автоссылки для twitter .

Если вы являетесь пользователем twitter, то этот код будет вам полезным

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function subzane_shorturl($atts) {
        extract(shortcode_atts(array(
                'url' => '',
                'name' => '',
), $atts));
$request = 'http://u.nu/unu-api-simple?url=' . urlencode($url);
$short_url = file_get_contents($request);
        if (substr($short_url, 0, 4) == 'http')    {
                $name = empty($name)?$short_url:$name;
                return '<a href="'.$short_url.'">'.$name.'</a>';
        } else {
                $name = empty($name)?$url:$name;
                return '<a href="'.$url.'">'.$name.'</a>';
        }
}
add_shortcode('shorturl', 'subzane_shorturl');

И код для поста:

1
[shorturl name="shortcode" url="http://codex.wordpress.org/Shortcode_API"]

7. показывает изображение, которые было использовано в последней записи.

1
2
3
4
5
6
7
8
9
10
11
12
13
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", "sc_postimage");

И конечно код для поста:

1
[postimage]

8. Добавляет особенные админские поля в записи.

Если в записях хотите скрыть какой либо момент, этот код как раз для вас.

1
2
3
4
5
6
7
add_shortcode( 'note', 'sc_note' );
 
function sc_note( $atts, $content = null ) {
         if ( current_user_can( 'publish_posts' ) )
                return '<div class="note">'.$content.'</div>';
        return '';
}

Код для записи:

1
[note]это личная запись и видеть её будет только админ![/note]

9. Удаляет автоформатирование в wordpress.

В wordpress после нажатия кнопки опубликовать срабатывает автоматическое форматирование текста, т.е. выравнивание текста, размер букв, вобщем корректировка текста, а этот код поможет к некоторым участкам вашей записи не приминять эту функцию.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function my_formatter($content) {
        $new_content = '';
        $pattern_full = '{([raw].*?[/raw])}is';
        $pattern_contents = '{[raw](.*?)[/raw]}is';
        $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
 
        foreach ($pieces as $piece) {
                if (preg_match($pattern_contents, $piece, $matches)) {
                        $new_content .= $matches[1];
                } else {
                        $new_content .= wptexturize(wpautop($piece));
                }
        }
 
        return $new_content;
}
 
remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');
 
add_filter('the_content', 'my_formatter', 99);

Код для записи:

1
[raw]Эта часть текста не будет отформатирована вордпресом.[/raw]

10. Статистика вашего блога с помощью коротких кодов.

Если хотите знать статистику своего блога в реальном времени, то ставте плагин Blog Stats у себя на блоге и с помощью вот этих кодов сможете выводить результаты в записях.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[pagerank]
[feedburner_subscribers]
[alexa_rank]
[technorati_authority]
[technorati_rank]
[user_count]
[post_count]
[page_count]
[comment_count]
[trackback_count]
[avg_comments_per_post]
[category_count]
[tag_count]
[link_count]
[google_backlinks]
[yahoo_backlinks]
[delicious_bookmarks]

Также читай на cooledit.org.ua:
.

загрузка...

Если вам понравилось, подпишись на наш RSS

Читать в Яндекс.Ленте Add to Google Reader or Homepage

4 комментария

  1. Спасибо! давно искал подобное. Оказывается всё лежит на поверхности.

    Буду заглядывать почаще. Обещайте обновлятся.

  2. Всё хороше и понятно. Есть вопрос.

    Как мне все мои shortcode вынести в отдельный файл? пробую и подключаю include_once WordPress вешается. 🙁
    Блин!!!!!!!!!!!!!!!!!!

  3. Как зачем, мне легче его писать и не засорять function.php темы

оставить комментарий

Ваш комментарий отправлен на модерацию админу, не надо заново его набирать.