第7章 使用WordPress API 使用 WordPress API、对象和辅助函数
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在本章中,我们将介绍几个WordPress应用程序接口、对象和辅助函数,这些内容在本书其他章节中没有涉及,但仍然是WordPress开发人员的重要工具。
简码 API
简码是格式特殊的文本片段,可用于在帖子、页面、小工具和其他静态内容区域插入动态输出。
简码主要有三种类型:
-
单个简码,如
[myshortcode] -
带有以下属性的简码
[myshortcode id="1" type="text"] -
包围简码,如
[myshortcode id="1"] ... some content here ... [/myshortcode]
在第 3 章中,我们分享了一个如何使用简码在 WordPress 帖子或页面中添加任意内容的示例。在该示例中,与第一种方法一样,我们只需将简码换成我们的内容即可。您还可以为简码添加属性,以影响处理简码的回调函数,或者用开头和结尾的简码对包装某些内容,以过滤某些特定内容。
创建简码的首要步骤是使用add_shortcode() 函数定义简码的回调函数。任何属性都会添加到一个数组中,该数组作为第一个$atts 参数传递给回调函数。任何内含内容都将作为第二个$content 参数传递给回调函数。
以下代码创建了一个名为msg 的简码,并在 中使用了属性和括弧内容:
<?php/*shortcode callback for [msg] shortcodeExample: [msg type="error"]This is an error message.[/msg]Output:<div class="message message-error"><p>This is an error message.</p></div>*/functionsp_msg_shortcode($atts,$content){//default attributesextract(shortcode_atts(array('type'=>'information',),$atts));$content=do_shortcode($content);//allow nested shortcodes$r='<div class="message message-'.$type.'"><p>'.$content.'</p></div>';return$r;}add_shortcode('msg','sp_msg_shortcode');?>
请注意,您希望显示的内容将从回调函数中返回,而不是回传到输出缓冲区。这是因为短代码过滤器通常是在任何内容推送到屏幕之前运行的。如果在此函数内有任何echo 调用,输出将显示在页面顶部,而不是您想要的内联位置。
简码属性
前面代码中演示的另一个重要部分是如何设置默认属性。 shortcode_atts() 函数需要三个参数:$pairs,$atts, 和$shortcode 。
$pairs 是一个默认属性数组,其中每个 key 是属性名,每个 value 是属性值。
$atts 是一个类似的属性数组,通常直接从传递给简码回调函数的 参数传递进来。 函数将默认属性和传入的属性合并为一个数组。