> WordPress中文手册 > wordpress进阶教程(二十六):wordpress短代码(Shortcodes)简介

自wp2.5版本以来,WordPress添加了短代码(Shortcodes)支持。在一些高级主题中,短代码是不可少的。

本文参考自:Http://www.tutorialchip.com/wordpress/wordpress-shortcode-tutorial-simple-to-advanced-part-1/

1、什么是短代码(Shortcodes)?

  • 短代码是添加在文章内容中的特殊标签,类似一些论坛的UBB代码,例如:['gallery]、[mylink][/mylink]等等(去掉['gallery]中的单引号),注意到如果在文章内容中写入['gallery],去掉其中的单引号,那么在可视化模式下,将会变成一个相册区域,这就是段代码。
  • 在预览或者插件文章的时候,短代码将会被替换成某一具体内容,比如上面一点的['gallery]

短代码示例1:我们将创建一个短代码[sayhello],创建这个短代码后,我们需要在文章中写入[sayhello]但是网站前台查看文章需要替换成“您好,这里是阿树工作室”。

步骤一、在主题的functions.php中添加一个函数

function say_hello() {        return "您好,这里是阿树工作室";    }   /**   *创建短代码   *参数1为段代码名称,即我们准备创建的短代码[sayhello]   *参数2为我们前面创建的函数   */   add_shortcode( 'sayhello', 'say_hello' );   //函数接受两个参数 $atts为短代码的属性数组   $content为两个标签之间的内容 function my_link( $atts, $content = null ) {      extract( shortcode_atts( array (        'href' => '/'      ), $atts ) ); //从短代码属性数组中获取href值      return '<a href="'.$href.'">'.$content.'</a>';    }   add_shortcode( 'mylink', 'my_link' );   [mylink href="http://dba.cn"]阿树工作室[/mylink]  

步骤二、创建(注册)短代码

function say_hello() {        return "您好,这里是阿树工作室";    }   /**   *创建短代码   *参数1为段代码名称,即我们准备创建的短代码[sayhello]   *参数2为我们前面创建的函数   */   add_shortcode( 'sayhello', 'say_hello' );   //函数接受两个参数 $atts为短代码的属性数组   $content为两个标签之间的内容 function my_link( $atts, $content = null ) {      extract( shortcode_atts( array (        'href' => '/'      ), $atts ) ); //从短代码属性数组中获取href值      return '<a href="'.$href.'">'.$content.'</a>';    }   add_shortcode( 'mylink', 'my_link' );   [mylink href="http://dba.cn"]阿树工作室[/mylink]  

步骤三、在文章中内容中添加刚刚添加的短代码
只需要在文章内容中输入 [sayhello] 在查看文章的时候,就将被自动替换成“您好,这里是阿树工作室”。

 

短代码示例2:创建高级短代码--给短代码添加属性、

短代码中还可以带参数属性,这个示例中,我们要创建一个短代码用来显示一个超链接,当然我们需要在短代码中加入参数--链接地址、文字内容,短代码形式为 [mylink href="http://dba.cn"]阿树工作室[/mylink]。

注意,短代码也可以是这种一对标签,其中开始标签内容可以带很多参数,两个标签之间也可以有内容,和HTML的标签类似

步骤一、在主题的functions.PHP文件中创建函数

function say_hello() {        return "您好,这里是阿树工作室";    }   /**   *创建短代码   *参数1为段代码名称,即我们准备创建的短代码[sayhello]   *参数2为我们前面创建的函数   */   add_shortcode( 'sayhello', 'say_hello' );   //函数接受两个参数 $atts为短代码的属性数组   $content为两个标签之间的内容 function my_link( $atts, $content = null ) {      extract( shortcode_atts( array (        'href' => '/'      ), $atts ) ); //从短代码属性数组中获取href值      return '<a href="'.$href.'">'.$content.'</a>';    }   add_shortcode( 'mylink', 'my_link' );   [mylink href="http://dba.cn"]阿树工作室[/mylink]  

步骤二、创建段代码

function say_hello() {        return "您好,这里是阿树工作室";    }   /**   *创建短代码   *参数1为段代码名称,即我们准备创建的短代码[sayhello]   *参数2为我们前面创建的函数   */   add_shortcode( 'sayhello', 'say_hello' );   //函数接受两个参数 $atts为短代码的属性数组   $content为两个标签之间的内容 function my_link( $atts, $content = null ) {      extract( shortcode_atts( array (        'href' => '/'      ), $atts ) ); //从短代码属性数组中获取href值      return '<a href="'.$href.'">'.$content.'</a>';    }   add_shortcode( 'mylink', 'my_link' );   [mylink href="http://dba.cn"]阿树工作室[/mylink]  

步骤三、在文章内容中添加段代码

只需要在文章中输入我们刚刚添加的段代码:

function say_hello() {        return "您好,这里是阿树工作室";    }   /**   *创建短代码   *参数1为段代码名称,即我们准备创建的短代码[sayhello]   *参数2为我们前面创建的函数   */   add_shortcode( 'sayhello', 'say_hello' );   //函数接受两个参数 $atts为短代码的属性数组   $content为两个标签之间的内容 function my_link( $atts, $content = null ) {      extract( shortcode_atts( array (        'href' => '/'      ), $atts ) ); //从短代码属性数组中获取href值      return '<a href="'.$href.'">'.$content.'</a>';    }   add_shortcode( 'mylink', 'my_link' );   [mylink href="http://dba.cn"]阿树工作室[/mylink]  

保存文章之后,查看文章,短代码内容将被替换成 带超链接的文字“阿树工作室”。