shortcodes1 Полезни shortcode функции

Какво е „съкратен код“ („shortcode“) ?

Shortcode-вете бяха представени в WordPress 2.5. Те позволяват изпълнението на PHP функции, чрез изписването на прост код, който изглежда така [shortcode]. Използването на тези „съкратени кодове“ позволява пестенето на време.

Синтаксис:

  • [shortcode]
  • [shortcode atribute="value"]
  • [shortcode]Text[/shortcode]

Вграждане на реклами

Ако искате да сложите реклами от Adsense (или друга рекламна платформа) в някой пост, то това ще Ви е от полза:

[php]function ads_shortcode( $atts ) {
extract(shortcode_atts(array(
‘format’ => ‘1′,
), $atts));

switch ($format) {
case 1 :
$ad = ‘Код за Google Adsense реклами’;
break;
case 2 :
$ad = ‘Код за EasyTrader реклами’;
break;
}
return $ad;
}
add_shortcode(‘ads’, ‘ads_shortcode’);[/php]

Разбира се не забравяйте да смените кода с ваш даден Ви от Google или друга реклмана платформа (EasyTrader например).  По подразбиране при изписването на shortcode-а [ads] ще се покаже рекламата от Google. Ако искате да се покаже реклама на EasyTrader задайте [ads format="2"].

Кодиране на email

Този трик ще създаде email връзка, като я кодира. Удобно решение с борбата със спама. Разбира се не е сигурно на 100%, но по-добре от нищо.

[php]function munge_mail_shortcode( $atts , $content=null ) {

for ($i = 0; $i < strlen($content); $i++) $encodedmail .= "&#" . ord($content[$i]) . ‘;’;

return ‘<a href="mailto:’.$encodedmail.’">’.$encodedmail.’</a>’;

}
add_shortcode(‘mailto’, ‘munge_mail_shortcode’);
[/php]

Синтаксис: [mailto]email@yourdomain.com[/mailto].

Пример: email@yourdomain.com

При разглеждане на сорс кода ще видите, че email-ът е изписан по подобен начин:

&#101;&#109;&#97;&#105;&#108;&#64;&#121;&#111;&#117;&#114;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#99;&#111;&#109;

Изкарване на подобни постове (related posts)

С този код, Вие ще можете да изкарате подобните постове на текущият пост спрямо таговете.

[php]function related_posts_shortcode( $atts ) {

extract(shortcode_atts(array(
‘limit’ => ‘5′,
), $atts));

global $wpdb, $post, $table_prefix;

if ($post->ID) {

$retval = ‘<ul>’;

//вземане на таговете
$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>Няма подобни постове</li>
‘;
}
$retval .= </ul>
‘;
return $retval;
}
return;
}

add_shortcode(‘related_posts’, ‘related_posts_shortcode’);[/php]

Синтаксис: [related_posts]
По подразбиране ще Ви изкара 5 подобни поста. Ако искате те да са повече задайте параметър на limit със стойност броя на желаните постове – [related_posts limit="10"]. Пример:

Paypal дарение

Ако искате Вашите родители да подпомогнат развитието на сайта, чрез дарение в paypal, то това е за вас.

[php]function donate_shortcode( $atts ) {
extract(shortcode_atts(array(
‘text’ => ‘Подкрепа на блог’,
‘account’ => ‘Напишете си акаунта (email адреса)’,
‘for’ => “,
), $atts));

global $post;

if (!$for) $for = str_replace(" ","+",$post->post_title);

return ‘<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=’.$account.’&item_name=Donation+for+’.$for.’">’.$text.’</a>’;

}
add_shortcode(‘donate’, ‘donate_shortcode’);[/php]

Синтаксис: [donate account="email адрес" text="Подкрепете блога" for="Подкрепа на блог"]

‘Account’ е email адресът, с който сте се регистрирали в Paypal, ‘text’ е текстът който ще се визуализира като линк, а ‘for’ е обяснение за какво ще се прави дарение.

Пример:

[donate]

Google Chart API Image Generator

С помощта на Google Chart API Image Generator може да се създават различни диаграми , графики и хистограми.

[php]function chart_shortcode( $atts ) {
extract(shortcode_atts(array(
‘data’ => “,
‘colors’ => “,
’size’ => ‘400×200′,
‘bg’ => ‘ffffff’,
‘title’ => “,
‘labels’ => “,
‘advanced’ => “,
‘type’ => ‘pie’
), $atts));

switch ($type) {
case ‘line’ :
$charttype = ‘lc’; break;
case ‘xyline’ :
$charttype = ‘lxy’; break;
case ’sparkline’ :
$charttype = ‘ls’; break;
case ‘meter’ :
$charttype = ‘gom’; break;
case ’scatter’ :
$charttype = ’s’; break;
case ‘venn’ :
$charttype = ‘v’; break;
case ‘pie’ :
$charttype = ‘p3′; break;
case ‘pie2d’ :
$charttype = ‘p’; break;
default :
$charttype = $type;
break;
}

if ($title) $string .= ‘&chtt=’.$title.“;
if ($labels) $string .= ‘&chl=’.$labels.“;
if ($colors) $string .= ‘&chco=’.$colors.“;
$string .= ‘&chs=’.$size.“;
$string .= ‘&chd=t:’.$data.“;
$string .= ‘&chf=’.$bg.“;

return ‘<img title="’.$title.’" src="http://chart.apis.google.com/chart?cht=’.$charttype.“.$string.$advanced.’" alt="’.$title.’" />’;
}

add_shortcode(‘chart’, ‘chart_shortcode’);[/php]

Код: [chart
data="55.00,22.00,18.00,5.00"
bg="F7F9FA"
labels="Китайски|Испански|Английски|Бенгалски" colors="058DC7,50B432,ED561B,EDEF00"
size="400x200"
title="Езици"
type="pie"]

[chart data="55.00,22.00,18.00,5.00" bg="F7F9FA"
labels="Китайски|Испански|Английски|Бенгалски" colors="058DC7,50B432,ED561B,EDEF00" size="400x200" title="Езици" type="pie"]

Повече информация за Google Chart API Image Generator може да намерите на официалния сайт.

Повече информация за shortcode API може да намерите тук.

wordpress-shortcodes/“ target=“_blank“>Smashing magazine също пубикуваха няколко полезни shortcode-a.

Добавяне на коментар

Създадете си Граватар, за да има снимка до коментарите Ви.











Режим на клавиатурата: