借一步网
作者:
在
简码是一种在WordPress内容中插入动态内容的方式。简码的概念在WordPress 2.5版本中被引入,目的是让用户可以在文章中动态地添加相册、视频、表单等内容。
举例:就像在文档中插入一个占位符,简码可以在不插入PHP代码的情况下,动态地呈现内容。
速记句:简码是WordPress中动态插入内容的占位符。
简码的主要优点是保持文章内容的干净和语义化。它避免了直接在文章中添加HTML标记,并且可以通过调整简码参数来修改内容的显示。
举例:想象一下,你在桌面上放置一个标签,而不是直接摆放物品,这样可以随时根据需要调整物品的排列。
速记句:使用简码,内容更干净,调整更灵活。
要创建一个基本简码,您可以使用 add_shortcode() 函数。这个函数接受两个参数:简码的名称和回调函数。
add_shortcode()
示例代码:
function wporg_shortcode(content = null) { return atts 数组获取并使用这些参数。 速记句:简码参数像HTML属性,提供更多控制选项。 处理简码的属性 为了正确处理简码的属性,开发者通常会使用 shortcode_atts() 函数来设置默认值并解析用户传入的属性。 示例代码: atts, atts = [], content = do_shortcode(content; } 解析:这段代码确保在处理内容时,嵌套的简码也会被解析。 速记句:用 do_shortcode() 解析嵌套简码。 删除简码 如果不再需要某个简码,可以使用 remove_shortcode() 来删除它。确保在删除之前已经正确注册过该简码。 示例代码: remove_shortcode('wporg'); 解析:这段代码会从WordPress中移除 wporg 简码,确保该简码不再被解析。 速记句:用 remove_shortcode() 删除不需要的简码。 检查简码是否存在 在某些情况下,您可能需要检查简码是否已经注册过,可以使用 shortcode_exists() 来进行检查。 示例代码: if (shortcode_exists('wporg')) { // Do something } 解析:这段代码会检查 wporg 简码是否存在,存在时执行相应操作。 速记句:用 shortcode_exists() 检查简码是否已存在。 简码的最佳实践 简码开发的最佳实践包括始终返回内容、为简码添加前缀以避免冲突、对输入进行消毒以及对输出进行转义。确保为用户提供所有简码属性的明确文档。 速记句:返回内容、加前缀、消毒输入、转义输出,简码更安全。 总结 本文介绍了WordPress简码的基本概念、创建方法、使用场景及一些最佳实践。通过简码,我们可以在文章中轻松插入动态内容,并通过参数灵活定制输出效果。记住,简码的关键在于保持代码简洁、安全,并确保用户使用时的便利性。 参考文献: WordPress插件开发教程手册 — 简码 WordPress插件开发文档 WordPress Codex WordPress安全编码标准 <?php function wporg_shortcode(content = null, atts = array_change_key_case((array)wporg_atts = shortcode_atts([ 'title' => 'WordPress.org', ], tag); // start output o .= '<div class="wporg-box">'; // title wporg_atts['title'], 'wporg') . '</h2>'; // enclosing tags if (!is_null(content content); // run shortcode parser recursively content); } // end box o; } function wporg_shortcodes_init() { add_shortcode('wporg', 'wporg_shortcode'); } add_action('init', 'wporg_shortcodes_init'); 代码解析 1. 定义简码的回调函数 function wporg_shortcode(content = null, atts = array_change_key_case((array)atts:简码的属性数组。
function wporg_shortcode(content = null) { return atts
速记句:简码参数像HTML属性,提供更多控制选项。
为了正确处理简码的属性,开发者通常会使用 shortcode_atts() 函数来设置默认值并解析用户传入的属性。
shortcode_atts()
atts, atts = [], content = do_shortcode(content; }
解析:这段代码确保在处理内容时,嵌套的简码也会被解析。
速记句:用 do_shortcode() 解析嵌套简码。
do_shortcode()
如果不再需要某个简码,可以使用 remove_shortcode() 来删除它。确保在删除之前已经正确注册过该简码。
remove_shortcode()
remove_shortcode('wporg');
解析:这段代码会从WordPress中移除 wporg 简码,确保该简码不再被解析。
wporg
速记句:用 remove_shortcode() 删除不需要的简码。
在某些情况下,您可能需要检查简码是否已经注册过,可以使用 shortcode_exists() 来进行检查。
shortcode_exists()
if (shortcode_exists('wporg')) { // Do something }
解析:这段代码会检查 wporg 简码是否存在,存在时执行相应操作。
速记句:用 shortcode_exists() 检查简码是否已存在。
简码开发的最佳实践包括始终返回内容、为简码添加前缀以避免冲突、对输入进行消毒以及对输出进行转义。确保为用户提供所有简码属性的明确文档。
速记句:返回内容、加前缀、消毒输入、转义输出,简码更安全。
本文介绍了WordPress简码的基本概念、创建方法、使用场景及一些最佳实践。通过简码,我们可以在文章中轻松插入动态内容,并通过参数灵活定制输出效果。记住,简码的关键在于保持代码简洁、安全,并确保用户使用时的便利性。
参考文献:
<?php function wporg_shortcode(content = null, atts = array_change_key_case((array)wporg_atts = shortcode_atts([ 'title' => 'WordPress.org', ], tag); // start output o .= '<div class="wporg-box">'; // title wporg_atts['title'], 'wporg') . '</h2>'; // enclosing tags if (!is_null(content content); // run shortcode parser recursively content); } // end box o; } function wporg_shortcodes_init() { add_shortcode('wporg', 'wporg_shortcode'); } add_action('init', 'wporg_shortcodes_init');
function wporg_shortcode(content = null, atts = array_change_key_case((array)atts:简码的属性数组。
function wporg_shortcode(content = null, atts = array_change_key_case((array)atts
tag
首先,代码使用 array_change_key_case() 将属性数组的键名转换为小写,这是为了确保用户使用大小写不敏感的属性名。
array_change_key_case()
// override default attributes with user attributes atts, o = ''; // start box o,然后开始构建 HTML 结构,在这里是一个 div 容器。 4. 输出标题 // title wporg_atts['title'], 'wporg') . '</h2>'; 解析:将简码的 title 属性值输出为标题(<h2> 标签)。esc_html__() 函数用于对标题文本进行安全处理,防止XSS攻击。 5. 处理包裹的内容 // enclosing tags if (!is_null(content content); // run shortcode parser recursively content); } 解析:如果简码是闭合简码且包裹了一些内容,则执行以下步骤:
// override default attributes with user attributes atts, o = ''; // start box o
div
// title wporg_atts['title'], 'wporg') . '</h2>';
解析:将简码的 title 属性值输出为标题(<h2> 标签)。esc_html__() 函数用于对标题文本进行安全处理,防止XSS攻击。
title
<h2>
esc_html__()
// enclosing tags if (!is_null(content content); // run shortcode parser recursively content); }
解析:如果简码是闭合简码且包裹了一些内容,则执行以下步骤:
apply_filters('the_content', content)
// end box o; }
解析:返回完整的 HTML 结构,WordPress会将其插入到文章内容中。
function wporg_shortcodes_init() { add_shortcode('wporg', 'wporg_shortcode'); }
解析:wporg_shortcodes_init 函数使用 add_shortcode() 将 wporg 简码与 wporg_shortcode 回调函数关联起来。
wporg_shortcodes_init
wporg_shortcode
init
add_action('init', 'wporg_shortcodes_init');
解析:使用 add_action() 将 wporg_shortcodes_init 函数挂载到 init 动作钩子上,确保简码在WordPress初始化完成后注册。
add_action()
这段代码展示了如何创建一个功能强大且安全的WordPress简码。它不仅支持自定义属性,还能够处理封闭简码中嵌套的内容,并且通过确保输出的安全性来防止潜在的安全问题。
你可以通过在文章中使用 [wporg title="Your Title"]Content goes here[/wporg] 来调用这个简码,生成一个带有自定义标题和内容的盒子。
[wporg title="Your Title"]Content goes here[/wporg]
要发表评论,您必须先登录。
什么是简码?
简码是一种在WordPress内容中插入动态内容的方式。简码的概念在WordPress 2.5版本中被引入,目的是让用户可以在文章中动态地添加相册、视频、表单等内容。
举例:就像在文档中插入一个占位符,简码可以在不插入PHP代码的情况下,动态地呈现内容。
速记句:简码是WordPress中动态插入内容的占位符。
为什么使用简码?
简码的主要优点是保持文章内容的干净和语义化。它避免了直接在文章中添加HTML标记,并且可以通过调整简码参数来修改内容的显示。
举例:想象一下,你在桌面上放置一个标签,而不是直接摆放物品,这样可以随时根据需要调整物品的排列。
速记句:使用简码,内容更干净,调整更灵活。
如何创建基本简码?
要创建一个基本简码,您可以使用
add_shortcode()
函数。这个函数接受两个参数:简码的名称和回调函数。示例代码:
tag
:简码的名称。首先,代码使用
array_change_key_case()
将属性数组的键名转换为小写,这是为了确保用户使用大小写不敏感的属性名。2. 设置默认属性
apply_filters('the_content',
content)
递归解析内容中的其他简码。6. 结束 HTML 结构
解析:返回完整的 HTML 结构,WordPress会将其插入到文章内容中。
8. 注册简码
解析:
wporg_shortcodes_init
函数使用add_shortcode()
将wporg
简码与wporg_shortcode
回调函数关联起来。9. 将函数挂载到
init
钩子解析:使用
add_action()
将wporg_shortcodes_init
函数挂载到init
动作钩子上,确保简码在WordPress初始化完成后注册。总结
这段代码展示了如何创建一个功能强大且安全的WordPress简码。它不仅支持自定义属性,还能够处理封闭简码中嵌套的内容,并且通过确保输出的安全性来防止潜在的安全问题。
你可以通过在文章中使用
[wporg title="Your Title"]Content goes here[/wporg]
来调用这个简码,生成一个带有自定义标题和内容的盒子。