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

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

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

Схожі записи – досить гарний варіант зробити, щоб користувачі Вашого блогу залишались як найдовше у Вас на сайті. Є досить багато плагінів для роботи із “Схожими записами/Related Posts“, але якщо Вам потрібен лише простий спосіб їх відобразити?
[php]function related_posts_shortcode( $atts ) {
extract(shortcode_atts(array(
‘limit’ => ‘5’,
), $atts));

global $wpdb, $post, $table_prefix;

if ($post->ID) {
$retval = ‘

    ‘;
    // 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 .= ‘

  • ‘.wptexturize($r->post_title).’
  • ‘;
    }
    } else {
    $retval .= ‘

  • No related posts found
  • ‘;
    }
    $retval .= ‘

‘;
return $retval;
}
return;
}
add_shortcode(‘related_posts’, ‘related_posts_shortcode’);[/php]
Використовувати:
[related_posts]

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

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

‘;
}

add_shortcode(‘adsense’, ‘showads’);[/php]
Використовувати:
[adsense]

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

Ось ще одна чудова річ, WordPress має вбудований RSS читач, який використовується, щоб відображати стрічки на головній сторінці Адмінпанелі (dashboard). Зараз Ви побачите, як це можна використовувати у себе в щоденнику у сайдбарі (sidebar), хідері, футері та будь-де ще (header, footer, etc…) за допомогою короткого коду (shortcode), Ви навіть зможете користуватись цим у записах.
[php]//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’);[/php]
Використовувати:
[rss feed="http://feeds.feedburner.com/uawordpress" num="5"]

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

Якщо Ви зареєстровані на Twitter-і, Ви знаєте, чим корисні короткі url. Але, звичайно, найнудніша річь, коли Ви хочете “затвітити” якийсь запис з блогу, це вручну створювати короткі url. Отже, що як для цього використовувати короткий код?
[php]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’);[/php]
Використовувати:
[shorturl name="shortcode" url="https://wordpress.co.ua/"]

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

Замість того, щоб використовувати url зображення звичайним способом, простий короткий може показати у Вашому записі останнє зображення, завантажене до запису :
[php]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 ‘

‘.$fullimage.’

‘;
}
add_shortcode(“postimage”, “sc_postimage”);[/php]
Використовувати:
[postimage]

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

Якщо у Вас звичайний чи мульти-авторський блог, була б дуже корисною можливість залишати у записах повідомлення/нотатки, які б могли читати лише адміністратори блогу. Наприклад, хазяїн блогу може додати повідомлення до запису, щоб автор цього запису виправив якусь помилку або додав більше інформації…
[php]add_shortcode( ‘note’, ‘sc_note’ );

function sc_note( $atts, $content = null ) {
if ( current_user_can( ‘publish_posts’ ) )
return ‘

‘.$content.’

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

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

Якщо Ви викладали у записах частини коду, то знаєте, що WordPress автоматично цей текст форматує. Це справжній головний біль для розробників. А рішення дуже просте: користуйтесь коротким кодом для відключення авто-форматування частини тексту Вашого запису.
[php]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);[/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 Ви зможете викликати список будь-якої кількості схожих записів з окремої категорії.
[php]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=’

‘;
return $retour;
}
add_shortcode(“list”, “sc_liste”);[/php]
Використовувати:
[liste num="10" cat="1"]
Далі буде…

Author

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

Коментувати

коментарі 4