WordPress Shortcode 速成指南:无需编码即可轻松嵌入HTML组件
WordPress 短代码为作者提供了一种便捷的方式,无需编写代码即可在渲染页面中插入HTML组件。这些短代码可以在插件代码中创建,也可以放置在主题的functions.php文件中。
短代码的关键优势:
建议创建一份短代码速查表,包含各种示例,尤其是在处理复杂功能时,这将使内容管理更加便捷和用户友好。
短代码创建位置:
通常,为自定义插件创建的短代码应放置在插件代码本身中。但是,您也可以将短代码定义放置在主题的functions.php文件中。更实用的方法是创建一个单独的shortcodes.php文件,然后使用以下语句将其包含在functions.php中:
include('shortcodes.php');
第一个“Hello World”短代码:
短代码定义包含:
add_shortcode()
钩子的调用,该钩子将短代码文本定义绑定到该函数。最基本的示例:
// "Hello World" 短代码 function shortcode_HelloWorld() { return '<p>Hello World!</p>'; } add_shortcode('helloworld', 'shortcode_HelloWorld');
保存文件,然后在页面或文章中输入[helloworld]
。访问该页面,您将看到它已被替换为“Hello World!”段落。
短代码参数:
短代码可以具有可选参数,例如:
<code>[sitemap title='网页列表', depth=3]</code>
参数作为数组传递给短代码函数作为第一个参数。生成页面层次结构站点地图的完整代码:
// sitemap 短代码 function shortcode_GenerateSitemap($params = array()) { // 默认参数 extract(shortcode_atts(array( 'title' => '站点地图', 'id' => 'sitemap', 'depth' => 2 ), $params)); // 创建站点地图 $sitemap = wp_list_pages("title_li=&depth=$depth&sort_column=menu_order&echo=0"); if ($sitemap) { $sitemap = ($title ? "<h2>$title</h2>" : '') . '<ul>' . $sitemap . '</ul>'; } return $sitemap; } add_shortcode('sitemap', 'shortcode_GenerateSitemap');
shortcode_atts()
函数在需要时为参数分配默认值。然后,PHP extract()
函数将每个数组值转换为实际变量 $title
、$id
和 $depth
。(如果您使用的是PHP 5.4或更高版本,则可以使用较短的[...]
语法替换array(...)
。)在任何文章或页面中添加[sitemap]
短代码,并根据需要更改参数,例如[sitemap depth=5]
。
嵌套BBCode短代码:
BBCode(公告板代码)是一种轻量级标记格式,与标准短代码一样,使用[方括号]
来表示命令。这允许短代码包含文本内容或彼此嵌套。假设您的页面需要引用和通用的号召性用语按钮。创建一个单个短代码是不切实际的,尤其是在按钮可以单独使用或嵌入到引用中时。我们可能需要这样的HTML:
include('shortcodes.php');
当编辑器非常熟悉HTML时,这可能会出错。幸运的是,短代码提供了一种更简单的途径,例如:
// "Hello World" 短代码 function shortcode_HelloWorld() { return '<p>Hello World!</p>'; } add_shortcode('helloworld', 'shortcode_HelloWorld');
标签之间的内容作为第二个参数传递给短代码函数。我们可以创建两个短代码函数:
<code>[sitemap title='网页列表', depth=3]</code>
请注意do_shortcode($content)
函数的使用,该函数在存在时将进一步的短代码应用于内容。短代码易于实现,并且可以快速更改或增强。我建议创建一个包含示例的短代码速查表,以便编辑器在需要复杂功能时可以参考。
(文章部分内容由SiteGround赞助提供。感谢您支持使SitePoint成为可能的合作伙伴。)
以上是如何为编辑器创建自定义的WordPress短代码的详细内容。更多信息请关注PHP中文网其他相关文章!