WordPress 的短代码对我来说一直都有些神秘,一方面是因为接触地不多,另外是因为短代码没有使用的必要性,而且我还只是 PHP 语言的初学者,所以我一直都是中规中矩地写着普通的 PHP 代码。在本站上唯一涉及 WordPress 短代码的地方就是 Clean Archives Reloaded 的调用方法,不过也没有深入研究是个怎么回事。
前些日子在刷 Google Reader 的时候,看到 happyet 的一篇 WordPress 短代码(简码)收藏,让我大开眼界,原来短代码也有这么多用法,转载收藏一下。
一、超链接用[url]
1. 打开主题中的 functions.php 文件。粘贴以下函数到其中:
extract(shortcode_atts(array(
"href" => 'http://'
), $atts));
return '<a href="'.$href.'">'.$content.'</a>';
}
add_shortcode("url", "myUrl");//把函数转化成简码
2. 简码创建成功,现在就可在日志和页面上使用了。
[url href="http://www.wordpress.com"]WordPress recipes[/url]
日志保存后,简码会显示名为“WordPress recipes”的链接,并指向http://www.wordpress.com。
代码注释:若要正常运行,简码必须处理两个参数:$atts 和 $content。$atts是简码属性,上例中,属性为href,且包括了URL链接。$content是简码内容,位于域名和子目录之间(即 www.example.com和“/subdirectory”之间)。正如以上显示,我们给$atts 和 $content都设置了默认值。
二、创建“发送到 twitter” 的简码
return '<div id="twitit"><a href="http://twitter.com/home?status=Currently reading '.get_permalink($post->ID).'" title="Click to send this page to Twitter!" target="_blank">Share on Twitter</a></div>';
}
add_shortcode('twitter', 'twitt');
然后只要在你文章需要的地方插入 [twitter] 此简码,“发送到Twitter”链接就会只出现放置简码的位置。
三、创建“RSS订阅”简码
return '<div class="rss-box"><a href="http://feed.happyet.org">Enjoyed this post? Subscribe to my RSS feeds!</a></div>';
}
add_shortcode('subscribe', 'subscribeRss');
同样用 [subscribe] 就可以显示了,当然加点css修饰一下就更好了。
四、定制 Google AdSense 位置
return '<div id="adsense">
//google adsense code here
</div>';
}
add_shortcode('adsense', 'showads');
使用 [adsense] 在你需要的位置调用 google ad,记得给外包的那个div设置css样式。
五、嵌入 RSS 阅读器
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://feed.happyet.org" num="5"]
feed 属性(attribute)即是要嵌入的 feed URL,num 即是要显示的条目数量。
六、使用简码从 WordPress 数据库中提取文章
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");
在 WordPress 编辑器中使用以下简码:[liste num="3" cat="1"],系统将从ID为1的类别中提取3篇文章。
代码注释:系统提取参数并创建全局变量$posts后,sc_liste()函数使用了 get_posts(),numberposts, order, orderby和 category 参数以从类别Y中获取X篇最新日志。完成后,系统就会以无序的HTML列表形式显示日志。
七、获取日志中的最新图像
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");
使用代码:[postimage size="" float="left"]
代码注释:sc_postimage()函数首先提取了简码属性,然后它使用get_children(), wp_get_attachment_image() 和wp_get_attachment_image_src()这些WordPress函数检索图像。完成后,系统就会返回图像并插入到文章内容中。
八、在侧边栏微件中添加简码
把以上代码放在 functions.php 里就行,以[短代码]的形式调用即可。
本文转自:WordPress 短代码(简码)收藏
-
万戈牌 WordPress 搜索自动匹配提示标签关键词2012年04月7日 -
新年新气象,博客换新衣2012年01月20日 -
2011 年终总结2011年12月29日 -
给 WordPress 添加语音搜索功能2011年12月4日
希望所有宝贝们都过得好
呵呵,收藏一下下 ~
能用到许愿树上呗
嘿嘿。。
可以啊,只要是WP,都可以用
看起来不是很难,我这个代码白痴也能看个究竟。
呵呵,其实本来就不难嘛
头疼的代码
哇塞,好麻烦,不用
其实好简单的说,我只不过把N种效果放在一起,所以看起来代码比较多而已
嗯,太累了,眼睛扛不住了,睡觉去了。
周末有时间一起加上~
我渐渐地知道了function.php的强大,在做博客之前看到一些博客程序用这个打广告。
不错,好多功能都是我想要的。。。
呵呵,短代码功能齐全啊
对我来说这有些高深了
只要会用就可以了,无需理解,呵呵
昨天的PSD发出了?今天有没有什么新进展?呵呵!
我可能要周末开始动工,先要帮小张的那个主题做完了
http://mcooo.com/wordpress-favorites.html 这里好像也挺多,呵呵
呵呵,就是从这里转来的
呵呵,收藏之,学习之,等待玩。
中国站长的文章是你投的吗?
我从来不去投稿的,如果在其他地方见到我的文章,那就是被转载了吧
这样CP很方便,呵呵
哈哈 不错 又学技术了 之前几个主题看到是这么用过~
我自己也学习了,呵呵,还没玩过
有点看不明白。
很方便也很依赖
我也加个称号:万疯了
。。。我有那么夸张嘛
请你吃蛋挞
我要吃原味的
对WP的热情削减了?
我用chrome 4.1.249.1045 ,google说是最好的版本。
总之是chrome惹的祸,换个浏览器试试
嗯,在ie下看來可以
向狂人致敬~
ps:点了,点了!点点更健康!
狂人不是我。。。我喜欢你的点点,哈哈
猴霸天也是我封的~
你就让我封个称号呗~哈哈
我已经换了IP了~再次学雷锋!
wp可以发掘的东西确实多啊,这个需要收藏一下了。
BTW:上一条留言写错网址了,所以再来一条!
这些简码相当超值啊,收藏收藏
我再试一下
。。。。这是什么情况
现在加载完了吧,我再试试
哇 几个主要功能都说了啊~~~
太牛X了~~~~
不过有些还是用一般的PHP也不需要很多代码的
收藏了··
我说的聚合的意思其实是收集。
就像我现在博客用的那个插件一样,可以收集同步到facebook中的博客的评论。
不知道说清楚了没有。
应该可以,我研究下
我咋回复就不嵌套呢?
因为你还没等JS完全加载好就回复了。。。。
用我的Chrome Beta永远都是点“评论”直接跳到最底下的评论框不能嵌套……无比悲愤地用Opera过来狂踩
。。。居然还有这种事
难道你用的是Chrome Beta?
还是直接点好
是不是619?
我看你们就是在灌水
你们都是在灌水吗?
隐身也没用啦
我来测试一下回复速度,我感觉我的博客回复的时候等待的时间太长
你看我的还行吗?
速度是相当的快啊
如何做到的?
我用的是Willin大师的AJAX评论,你试试吧
为什么同样都是小张的主机,我的咋那么慢啊
哈哈,不要以为脱光了就可以跑的更快
弄死我;或者拯救我
先把你弄的半死不活,再来拯救你
我隐身
好实用!i like!
刚好改版了,可以用用啦,哇咔咔~~
。。。从一个裸男改版到另一个裸男
哈哈~~~
好技术的一篇文章,好高端
呵呵,还好啦,其实没有你想象的那么难
发现你主机的速度变快了
哈哈,那是,刚刚换了小张的主机
额,为啥留言才这么几条呢??
不知道耶,我自己奇怪,大家都去干什么了?
灵异灵异啊,刚留言时显示才10条呀………………
那我知道了,因为我用了head expires,可以把缓存交给浏览器,小张的主机牛B吧
额,刚回复邮件过来定位不到了呢,还是由于缓存的关系……
恩,是啊
不过邮件回来找不到链接倒也是个问题。。。
为什么你的博客在我的谷歌阅读器里不能打开的??用代理就能打开。好奇怪哦。。直接访问网址却可以的。抱歉,发生意外情况,阻碍了 Google 阅读器完成请求。
不知道耶,很多同学都向我反映这个问题了。。。
帮我想想,怎么才能自动把文章内的所有链接通过api自动转换成 短网址 ?
理论上应该可以啊
1.用正则过滤出全文的链接
2.用str_replace替换所有链接为API形式
3.用file_get_contents获取新生成的短网址
4.用add_filter把新链接钩到the_content里去
接下来就靠你了,做个插件出来吧,哈哈
不行啦。。。。。。。这任务还是交给小邪了。。。。。。。。。。。
搞定后通知我哈,验证一下我的思路对不对
楼层又高了。。我无奈!
楼层还这么低。。。哪里高了
我的梦想就是进入10层以内
收藏学习,占楼,嘿嘿
折腾WP,兄弟一直是个迷。鉴定完毕~~
呵呵,折腾WP是我的一大爱好
这个好,先收藏。
还是 插入图片视频比较爽,我已经搞好了
我插视频的不太多,图片到是可以考虑用短代码
那你写代码用的是啥插件么?
没用啥插件,是代码发芽网
还是头一次听说,研究研究
我是早就有耳闻了,但还没有怎么玩过
第六第七很有用~~
类似论坛的UBB?
恩,可以这么说吧
万戈有不有看过刘淼博客中的品论栏,好像是收集了twitter的RT。我现在用了一个插件,不知道你有不有办法找到非插件聚合评论的方法啊?
是不是有些难啊?
没有去过你说的刘淼博客。。。
非插件的方法肯定有,只是没有理解你说的聚合评论,是指聚合谁的评论呀?
我就用添加了MP3播放器和GoogleDocs预览两个短代码功能~
GoogleDocs预览,这个不错,我去模仿着写一个试试
我有写过文章哦~~
等我写好再拿你的参考,对对答案
靠,竟然坐到地板上了
冰大哥,其实你在地下室
太郁闷了,明明只看到有张板凳在那里,跑过去,被坐了sf的家伙收了。然后又跑来个兽人占了地板
HOHOHO ,不好意思哦~
快,板凳。
没啥用的……
不要说的那么直接嘛。。。
以后直接打开你的网址了,不然跳转好几次才过来……
用GTalk的推特机器人~~
我的gtalk推特机器人是和follow5的那个绑定的,呵呵
沙发!