Напевно Ви вже багато знаєте про “короткі коди” у 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"]
Далі буде…
коментарі 4
Спасибо! а еще посты на эту тему будут?
а як же, і багато 😉
AzzePis, з задоволенням чекаю на пости по цій темі)
Дякую, будуть!