Шорткоды в wordpress, применение на примерах

26 июля 2014 | Автор: | Категория: JQuery и PHP

Шорткод — это универсальная пользовательская функция, которую можно вызвать непосредственно в записи блога по заданному имени. При помощи шорткодов разработчики плагинов могут создавать специальные виды контента (формы, таблицы, генераторы контента и др.), которые в последствии пользователи смогут добавлять в определённых постах, страницах сайта просто вставив соответствующий короткий код в нужное место на странице.

Для создания новых шорткодов нужно отредактировать файл functions.php вашей темы wordpress и добавить соответствующие функции, которые будут описывать их функционал.

Примеры шорткодов:

1) Шорткод для вставки рекламного блока (Google Adsense, Яндекс.Директ и др.) внутри поста.

1
2
3
4
5
6
<?php
function google_ads() {
    return 'код адсенсе';
}
add_shortcode('googleadsense', 'google_ads');
?>

В том месте статьи, где Вы захотите вывести рекламный блок, нужно вставить шорткод:

1
[googleadsense]

2) С помощью этого шорткода можно сделать скриншот любого сайта и отобразить у себя на блоге.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function wpr_snapshot( $atts, $content = null ) {
    extract(shortcode_atts(array(
        'snapshot' => 'http://s.wordpress.com/mshots/v1/',
        'url' => 'http://seogrot.com/',
        'alt' => 'Блог SeoGrot',
        'w' => '300',
        'h' => '300' 
    ), $atts));
    $img = '<img 
                src="' . $snapshot . '' . urlencode($url) . '?w=' . $w . '&h=' . $h . '" 
                alt="' . $alt . '"/>';
    return $img;
}
add_shortcode('snapshot', 'wpr_snapshot');
?>

Если вставить шорткод без параметров, то отобразится скриншот сайта заданного по умолчанию:

1
[snapshot]

Чтобы добавить скриншот другого сайта, нужно изменить входные параметры:

1
[snapshot url="http://test.ru/" alt="Test website" w="300" h="300"]

3) Шорткод для отображения приватного контента на сайте.

1
2
3
4
5
6
7
8
<?php
function private_content( $atts, $content = null ) {
    if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
        return $content;
    return '';
}
add_shortcode( 'member', 'private_content' );
?>

Текст, который будет доступен для чтения только залогиненым юзерам, нужно обернуть в теги:

1
[member]Скрытый текст[/member]

4) С помощью этого шорткода можно выделить определенный текст в статье, применив к нему заданные стили css.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function style_block_text($attr,$content= null){
	return'<style type="text/css">
		.red_block{
		font-size: 14px;
		text-align: justify;
		text-indent: 15px;
		margin: 3px;
		background-color: #fafad2;
		border: 4px double #a52a2a;
		padding: 4px;
		width: 100%;
		}
		</style>
<div class="red_block">'.$content.'</div>';
}
add_shortcode('st', 'style_block_text');
?>

Текст, который нужно выделить, заключаем в теги:

1
[st]Текст c применением стилей[/st]

Следующий код добавит новую кнопку на панель редактирования wordpress:

1
2
3
4
5
6
7
8
9
10
11
<?php
if( !function_exists('_add_my_quicktags') ){
function _add_my_quicktags()
{ ?>
<script type="text/javascript">
QTags.addButton( 'st', 'Style Text', '[st]', '[/st]' );
</script>
<?php }
add_action('admin_print_footer_scripts', '_add_my_quicktags');
}
?>

Теперь, если появится необходимость выделить какой-то кусок текста, не нужно прописывать теги вручную, достаточно выделить текст и нажать на новую кнопку Style Text, которая появится на панели редактирования.

5) Шорткод с помощью которого можно добавить в пост список ссылок на похожие записи:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function similar_posts($atts, $content = null) {
extract(shortcode_atts(array(
"num" => '5',
"cat" => ''
), $atts));
global $post;
$myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=rand&category='.$cat);
$retour='<ul style="list-style-type:none; padding:0px; margin:0px;">';
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_of_posts", "similar_posts");

В шорткод можно передать значение количества выводимых записей и категорию из которой будут выбираться публикации в рандомном порядке.

Чтобы вывести 3 записи из категории с id=»1″ нужно добавить в пост следующий шорткод:

1
[list_of_posts num="3" cat="1"]

На сегодня всё, а Вы используете шорткоды в своих блогах на WordPress?

Метки: 

Для этой страницы комментарии закрыты.