10 коротких кодов для wordpress(shortcodes)
Доброе время суток уважаемые блоггеры или те, кто шарится по страницам моего блога!
Сегодня я представляю вам сборочку коротких кодов(или так называемых shortcodes) для wordpress. Кому не интерестно пусть не читают, эти коды для тех кому они дейтвительно нужны.
А если вам интерестно что я могу написать в будущем жмите СЮДА!!! ↓
↓
Что такое такое 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] |
Спасибо! давно искал подобное. Оказывается всё лежит на поверхности.
Буду заглядывать почаще. Обещайте обновлятся.
Всё хороше и понятно. Есть вопрос.
Как мне все мои shortcode вынести в отдельный файл? пробую и подключаю include_once WordPress вешается. 🙁
Блин!!!!!!!!!!!!!!!!!!
А зачем тебе отдельный файл?
Как зачем, мне легче его писать и не засорять function.php темы