Напевно Ви вже багато знаєте про “короткі коди” у WordPress. Офіційна інформація щодо цього знаходиться, як не дивно :), за адресою http://codex.wordpress.org/Shortcode_API.

Далі ми приведемо кілька варіантів реалізації коротких кодів. Описані функції потрібно вставити у файл functions.php, що знаходиться у директорії з Вашою темою. Потім просто використовуйте коди, як показано (Використовувати…)

1 – Відображення схожих записів:

Схожі записи – досить гарний варіант , щоб користувачі Вашого блогу залишались як найдовше у Вас на сайті. Є багато плагінів для роботи із “Схожими записами/Related Posts“, але якщо Вам потрібен лише простий спосіб їх відобразити?

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');Code language: PHP (php)

Використовувати:
[related_posts]

2 – Інтегруйте оголошення Adsense

Adsense, мабуть, найпопулярніший спосіб заробляти гроші онлайн і більшість блогерів використовують його. Використовуючи віджети (widgets) , Ви можете легко додати код Adsense у сайдбар (sidebar) Вашого блогу, алеbut найращий шлях отримати “кліки” від відвідувачів – інтегрувати оголошення Adsense у Ваші записи. Весь цей процес неймовірно легкий, якщо використовувати короткі коди (shortcodes) WordPress.

function showads() {
return '<script type="text/javascript">.......</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">........</script>
';
}

add_shortcode('adsense', 'showads');
Code language: PHP (php)

Попередньо відредагуйте кож оголошень. Використовувати:
[adsense]

3 – Вбудований RSS читач

Ось ще одна чудова річ, WordPress має вбудований RSS читач, який використовується, щоб відображати стрічки на головній сторінці Адмінпанелі (dashboard). Зараз Ви побачите, як це можна використовувати у себе в щоденнику у сайдбарі (sidebar), хідері, футері та будь-де ще (header, footer, etc…) за допомогою короткого коду (shortcode), Ви навіть зможете користуватись цим у записах.

//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');Code language: PHP (php)

Використовувати:
[rss feed="http://feeds.feedburner.com/uawordpress" num="5"]

4 – Автоматично створюйте короткі url для Twitter

Якщо Ви зареєстровані на Twitter-і, Ви знаєте, чим корисні короткі url. Але, звичайно, найнудніша річь, коли Ви хочете “затвітити” якийсь запис з блогу, це вручну створювати короткі url. Отже, що як для цього використовувати короткий код?

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 ''.$name.'';
} else {
$name = empty($name)?$url:$name;
return ''.$name.'';
}
}
add_shortcode('shorturl', 'subzane_shorturl');Code language: PHP (php)

Використовувати:
[shorturl name="shortcode" url="https://wordpress.co.ua/"]

5 – Показуйте останнє зображення, що завантажене до запису

Замість того, щоб використовувати url зображення звичайним способом, простий короткий може показати у Вашому записі останнє зображення, завантажене до запису :

function sc_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", "sc_postimage");Code language: PHP (php)

Використовувати:
[postimage]

6 – Додайте нотатки адміністратора до записів

Якщо у Вас звичайний чи мульти-авторський блог, була б дуже корисною можливість залишати у записах повідомлення/нотатки, які б могли читати лише адміністратори блогу. Наприклад, хазяїн блогу може додати повідомлення до запису, щоб автор цього запису виправив якусь помилку або додав більше інформації…

add_shortcode( 'note', 'sc_note' );

function sc_note( $atts, $content = null ) {
if ( current_user_can( 'publish_posts' ) )
return '
<div class="note">'.$content.'</div>
';
return '';
}Code language: PHP (php)

Використовувати:
[note]Повідомлення тільки для адміністратора![/note]

7 – Вилучити автоматичне форматування WordPress

Якщо Ви викладали у записах частини коду, то знаєте, що WordPress автоматично цей текст форматує. Це справжній головний біль для розробників. А рішення дуже просте: користуйтесь коротким кодом для відключення авто-форматування частини тексту Вашого запису.

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);Code language: PHP (php)

Використовувати:
[raw]Цей текст не форматується WP.[/raw]

8 – Покажіть статистику Вашого блогу, користуючись коротким кодом

Завжди хотілося мати можливість показувати статистику блогу у реальному часі? Дякуючи Wesley та його плагіну “Blog Stats”, Ви можете показати статистичну інформацію, таку як кількість записів, кількість відгуків, середня кількість відгуків для 1 запису, google pagerank, alexa rank, та інше, використовуючи простий короткий код.
Плагін Blog Stats plugin можна завантадити тут та інсталювати, як усі інші плагіни.

Використовувати:
[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]

9 – Схожі записи з бази даних WordPress за допомогою короткого коду

За допомогою цього shortcode Ви зможете викликати список будь-якої кількості схожих записів з окремої категорії.

function sc_liste($atts, $content = null) {
extract(shortcode_atts(array(
"num" => '5',
"cat" => ''
), $atts));
global $post;
$myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=post_date&category='.$cat);
$retour='<ul>';
foreach($myposts as $post) :
setup_postdata($post);
$retour.='<li><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>';
endforeach;
$retour.='</ul> ';
return $retour;
}
add_shortcode("list", "sc_liste");Code language: PHP (php)

Використовувати:
[liste num="10" cat="1"]
Далі буде…

Author

Дмитро Кондрюк в веб-індустрії з 2003 року. В 2009р. заснував проект Український WordPress (що у подальшому став офіційним сайтом команди локалізації WordPress в Україні). З 2010 року засновник і технічний директор проекту Український хостинг для WordPress (WPHost.me) - повноцінного хостинг-сервісу, максимально оптимізованого на використання CMS WordPress.

Коментувати

коментарі 4