WordPress中的shortcode短代码性能应用详解

WordPress 从 2.5 的版本开端,添加了一个 shortcode (短代码) API ,相似于 BBS 上的 BBCode , shortcode 也能够很不便的为文章或页面添加性能,并且 shortcode 的比起 BBCode 愈加灵敏和弱小。上面 Kayo 为大家引见一下 shortcode 。

一.shortcode 简介
shortcode 能够让**经过以函数的方式创立宏内容来生成内容,或者这个概念看下来有点模糊,但实际上它是一个很简略而适用的性能,只需会编写根本的 PHP 函数,即可应用 shortcode ,下文会以实际的例子来阐明 shortcode 的应用办法。

二.shortcode 方式
shortcode 支持关闭标签和自闭(主动关闭)标签,并且支持在标签内应用参数,至于 shortcode 详细是何种方式,这就决议于**怎么编写这个 shortcode 了。

[myshortcode]Some Content[/myshortcode] // 关闭标签
[myshortcode] // 自闭标签
[myshortcode title="example"] // 带有一个参数的自闭标签
[myshortcode]<p><a href="#"><span>内容</span></a></p>[/myshortcode] // 标签内能够填写文本或 HTML
[myshortcode]Content [myshortcodesecond] more content[/myshortcodesecond] // 也能够嵌套应用标签

三.shortcode 例子
在应用 shortcode 前,首先必需在主题的 functions.php 文件中定义 shortcode ,例如:

function myshortcode_function($atts, $content = null){ // $atts 代表了 shortcode 的各个参数,$content 为标签内的内容
 
 extract(shortcode_atts(array( // 应用 extract 函数解析标签内的参数
 "title" => '题目' // 给参数赋默许值,上面间接调用 $ 加上参数名输入参数值
 ), $atts));
 // 前往内容
 return '<p class="myshortcode">
    <h3>'. $title .'</h3>
    <p>
     '. $content .'
    </p>
   </p>';
}
 
add_shortcode("msc", "myshortcode_function"); // 注册该 shortcode,当前应用 [msc] 标签调用该 shortcode

把下面的代码增加到 functions.php 中,一个简略的 shortcode 便创立好了,咱们能够经过 [msc][/msc]标签调用该 shortcode ,如:

[msc title="欢送"]这是独立博客 Kayo's Melody ,欢送来到本博客[/msc]

在文章或页面内容中输出下面的调用,能够在相应的地位输入一段欢送语句,在 style.css 中定义相应的 CSS ,即可为短代码赋予款式。

Kayo 简单的引见了 WordPress 的短代码(shortcode) 性能,次要是引见了 shortcode 的次要概念和应用办法。在本文中, Kayo 将会愈加具体的引见一下 shortcode 中较为重要的 API ,心愿有助于各位开发较为复杂的 shortcode 。

四.函数 add_shortcode

该函数用于注册一个 shortcode ,它有两个参数:短代码名与 shortcode 解决函数名,援用上文的例子:

function myshortcode_function($atts, $content = null){ // $atts 代表了 shortcode 的各个参数,$content 为标签内的内容
 
 extract(shortcode_atts(array( // 应用 extract 函数解析标签内的参数
 "title" => '题目' // 给参数赋默许值,上面间接调用 $ 加上参数名输入参数值
 ), $atts));
 // 前往内容
 return '<p class="myshortcode">
    <h3>'. $title .'</h3>
    <p>
     '. $content .'
    </p>
   </p>';
}
 
add_shortcode("msc", "myshortcode_function"); // 注册该 shortcode,当前应用 [msc] 标签调用该 shortcode

msc 即为短代码名,当前在写文章或页面时能够间接应用 [msc][/msc] 标签调用该短代码,而 "myshortcode_function" 即为例子中的短代码解决函数的称号。上面重点剖析短代码解决函数。

五.短代码解决函数

shortcode 解决函数是一个 shortcode 的外围, shortcode 解决函数相似于 Flickr(WordPress 过滤器),它们都承受特定参数,并前往肯定的后果。 shortcode 解决器承受两个参数, $attr 和 $content , $attr 代表 shortcode 的各个属性参数,从实质下去说是一个关联数组,而 $content 代表 shortcode 标签中的内容。

如下面的例子,若在文章内作出调用,输入一段欢送语句:

[msc title="欢送"]这是独立博客 Kayo's Melody ,欢送来到本博客[/msc]
当文章显示时, WordPress 会注册一切的 shortcode ,如下面的 [msc] ,若 shortcode 中有属性参数和内容, WordPress 会把它们别离进去并解析,而后传递给该 shortcode 的短代码解决函数,解决后以解决函数输入的后果替代短代码本来的内容显示在文章内。

这时属性参数会并解析会关联数组并传递给 $attr ,如下面的例子中 $attr 的值为如下的一个关联数组:

array( 'title' => '欢送')

在输入后果时,能够间接应用 $参数名 的方式进行输入,如例子中的状况即以 $title 输入该属性值。

六.shortcode_atts

shortcode_atts 是一个很适用的函数,它能够为你需求的属性参数设置默许值,并且删除一些不需求的参数。

shortcode_atts() 蕴含两个参数 $defaults_array 与 $atts , $attr 即为属性参数集合, $defaults_array 是代表需求设置的属性默许值,举个例子:

$result = shortcode_atts( array(
 'title' => '新题目',
 'description' => '形容内容'
), $atts );
$attr 仍然为

array( 'title' => '欢送')

这时 $result 的后果为

array( 'title' => '新题目', 'description' => '形容题目')

'title' 因为在 $defaults_array 有不同的值,因而以这个新的值为准更新了 'title' ,同时也添加了 'description' 这个值。值得留意的是, shortcode_atts() 会过滤 $defaults_array 中没有的属性,如果 $attr 中还有一个 'ohter' 的属性,那么 $result 的后果依然是下面的后果,由于 $defaults_array 中并没有 'other' 这个属性。当然,这里说的值只是属性的默许值,真正输入的值还是 shortcode 调用时填写的值。

七.进一步解析属性与设置属性默许值

extract() 函数用于进一步解析属性并设置属性默许值,其中一个性能是把各属性参数值赋予给一个形如 "$参数名" 的变量保留起来(如例子中的 $title ),不便调用,应用该函数配合 shortcode_atts() 就能够很平安的输入后果。这点的详细应用能够参见本文**点“一.函数 add_shortcode”的例子。

另外,属性名中的大写字母在传递给解决函数前会先转化为小写字母,因而倡议在编写属性名时间接应用小写字母。

以上就是安达网络工作室关于《WordPress中的shortcode短代码功能使用详解》的一些看法。更多内容请查看本栏目更多内容!

本文相关话题: WordPress shortcode 短代码 PHP编程
版权声明:本文为 安达网络工作室 转载文章,如有侵权请联系我们及时删除。
相关文章
WordPress 搜寻框增加文字提醒的办法

如在 Nicky 的博客中, 我发现了下图中的搜寻栏. 在搜寻栏中增加这样的提醒信息, 能够疏导访客对网站进行搜...

WordPress在SAE平台完成的动态化插件及用法示例

本文实例讲述了WordPress在SAE平台完成的动态化插件及用法。分享给大家供大家参考,详细如下: WordPress是...

WordPress投稿性能增加邮件提示性能的办法

一、增加一个存储投稿者邮箱的自定义栏目   关上WordPress增加投稿性能,上面咱们将对这篇文章中的代码进...

为wordpress添加网站布告性能

首先,在主题functions.php中添加上面的代码: 复制代码代码如下:function wp_dashboard_GongGao() { if...

完满处理wordpress sae版改域名后不能进入后盾的成绩

处理方法: 办法一: 修正文件&ldquo;/wp-includes/pluggable.php&rdquo;中的wp_set_auth_cookie函数。搜寻...

WordPress中"无奈将上传的文件挪动至"谬误的处理办法

明天在网页上传图片到博客,后果提醒:“无奈将上传的文件挪动至 /home/wwwroot/wp-content/uploads/2013/”...

需求提交

客服服务