Розпродаж хостинг-планів на неймовірних умовах!
Знижка від 300 до 500грн!
 

Зверніть увагу: ця публікація побачила світ більше року тому, з того часу багато чого могло змінитися ;)

Напевно Ви вже багато знаєте про “короткі коди” у 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');

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

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

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

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

add_shortcode('adsense', 'showads');

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

Використовувати:
[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 '<a href="'.$short_url.'">'.$name.'</a>';
	} else {
		$name = empty($name)?$url:$name;
		return '<a href="'.$url.'">'.$name.'</a>';
	}
}
add_shortcode('shorturl', 'subzane_shorturl');

Використовувати:
[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">'.$fullimage.'</div>
';
}
add_shortcode("postimage", "sc_postimage");

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

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

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

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");

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

Дмитро Кондрюк

Автор публікації Дмитро Кондрюк

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

Є що відповісти?

Ваш email не буде публікуватися

Можна скористатися такими тегами в тексті:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>