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://www.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

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 темы

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