什么是WordPress短码?
WordPress的短码就是用比较少的代码轻松实现各种功能。短码是在WordPress 2.5被引入的,引入的原因是为了让非专业人士在编辑WordPress页面、文章和小工具时,不需要写任何代码就能直接执行代码,就能实现一些动态生成的高级功能。这让你能用简简单单的一行就能完成诸如嵌入文件或者创建对象等通常需要许多代码才能完成的功能。
当短代码被放到文章或者页面中的时候,它会被替换成一些其他的内容。换言之,我们会找到文章或者页面里方括号([])中内容,并根据一个PHP函数,把它替换成一个适当的动态内容。
WordPress短代码示例
通过WordPress短码嵌入最新发布的文章可能会像下面这样简单:
- [recent-posts]
再进一步的,我们可以通过设定一个参数来控制现实的文章的数量:再进一步的,我们可以通过设定一个参数来控制现实的文章的数量:
- [recent-posts posts=“5”]
更进一步的,我们可以为文章列表增加一个标题,那么相应的短码看起来是这样:
- [recent-posts posts=“5”]Posts Heading[/recent-posts]
创建WordPress短代码
下面我们创建一个用来显示最新发布文章的短码,创建的过程非常简单,不需要很高级的PHP知识。创建过程如下:
- 创建一个回调函数,当 WordPress 发现短码的时候会调用此函数来显示最新发布的文章;
- 通过设置一个唯一的名称来注册短代码;
- 把注册的函数绑定到WordPress的init钩子上。
创建回调函数
当发现短码的时候,它会被一个称作回调函数的一段代码所代替。所以我们先创建一个函数,从数据库中获取最新的文章。
- function recent_posts_function() {
- query_posts(array(‘orderby’ => ‘date‘, ‘order’ => ‘DESC’ , ‘showposts’ => 1));
- if (have_posts()) :
- while (have_posts()) : the_post();
- $return_string = ‘<a href=“‘.get_permalink().'”>’.get_the_title().'</a>’;
- endwhile;
- endif;
- wp_reset_query();
- return $return_string;
- }
如上所示,我们查询数据库,获取最新的文章,并返回一个带有链接的字符串。值得注意的是,回调函数并不打印任何内容,而是返回一个字符串。
注册短码
现在,我们告诉Wordpress这个函数是一个短码:
- function register_shortcodes(){
- add_shortcode(‘recent-posts’, ‘recent_posts_function’);
- }
当在文章的内容中发现短码 [recent-posts] 时,将会自动调用 recent_posts_function() 函数,我们需要确保短码的名字是唯一的,以避免重复
把注册的函数绑定到WordPress的init钩子上
为了能够执行 recent_posts_function() 函数,我们需要把它绑定在 WordPress 的初始化钩子中。
- function register_shortcodes(){
- add_shortcode(‘recent-posts’, ‘recent_posts_function’);
- }
测试短代码
简单的短码已经准备好了,现在我们需要测试它是否能够正常运行。我们创建一个新的文章(或打开一个已存在的),把下面的短码加入到文章内容中的某个位置:
- [recent-posts]
在WordPress中发布文章并在浏览器中打开,你将看到最新文章的列表。