当前位置: 首页 > news >正文

【WP|9】深入解析WordPress [add_shortcode]函数

add_shortcode 是 WordPress
中一个非常强大的函数,用于创建自定义的短代码(shortcodes)。短代码是一种简洁的方式,允许用户在内容中插入动态的、可重用的功能。通过
add_shortcode,开发者可以定义自己的短代码,然后用户可以在帖子、页面、小工具或其他内容区域中使用这些短代码来显示特定的内容或功能。

在这里插入图片描述

add_shortcode 的语法

add_shortcode( $tag, $callback );
  • $tag(字符串):这是短代码的名称,用户在内容中使用的标签。
  • $callback(回调函数):这是一个函数,当短代码被使用时将被调用。该函数应该返回短代码的输出内容。

使用示例

以下是一个简单的示例,展示如何创建和使用短代码。

  1. 定义短代码
    在你的主题的 functions.php 文件或插件文件中添加以下代码:

    function my_custom_shortcode($atts, $content = null) {// 提取和处理短代码属性$attributes = shortcode_atts(array('attr1' => 'default_value1','attr2' => 'default_value2',), $atts);// 返回短代码的输出内容return '<div class="custom-shortcode">' . $attributes['attr1'] . ' - ' . $attributes['attr2'] . '</div>';
    }// 注册短代码
    add_shortcode('my_shortcode', 'my_custom_shortcode');
    
  2. 使用短代码
    在帖子或页面中,你可以使用以下语法插入短代码:

    [my_shortcode attr1="value1" attr2="value2"]
    

    这将被解析为:

    <div class="custom-shortcode">value1 - value2</div>
    

更高级的用法

1. 短代码的嵌套

短代码可以包含嵌套内容。下面是一个处理嵌套内容的示例:

function my_nested_shortcode($atts, $content = null) {return '<div class="nested-shortcode">' . do_shortcode($content) . '</div>';
}add_shortcode('nested_shortcode', 'my_nested_shortcode');

在帖子或页面中使用:

[nested_shortcode]这里是嵌套内容,可以包含其他短代码,比如 [my_shortcode attr1="value1"][/nested_shortcode]
2. 复杂的回调函数

回调函数可以非常复杂,包含条件逻辑、数据库查询等。例如:

function my_complex_shortcode($atts) {global $wpdb;$attributes = shortcode_atts(array('category' => 'default',), $atts);$category = $attributes['category'];// 查询数据库$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM wp_posts WHERE post_category = %s",$category));$output = '<ul class="category-posts">';foreach ($results as $post) {$output .= '<li>' . $post->post_title . '</li>';}$output .= '</ul>';return $output;
}add_shortcode('complex_shortcode', 'my_complex_shortcode');

在帖子或页面中使用:

[complex_shortcode category="news"]

总结

add_shortcode 是 WordPress 提供的一个非常有用的工具,允许开发者创建自定义的短代码,提供灵活的内容展示方式。通过合理使用短代码,可以极大地增强 WordPress 站点的功能和用户体验。

相关文章:

【WP|9】深入解析WordPress [add_shortcode]函数

add_shortcode 是 WordPress 中一个非常强大的函数&#xff0c;用于创建自定义的短代码&#xff08;shortcodes&#xff09;。短代码是一种简洁的方式&#xff0c;允许用户在内容中插入动态的、可重用的功能。通过 add_shortcode&#xff0c;开发者可以定义自己的短代码&#x…...

Qt QStackedWidget类详细分析

一.定义 QStackedWidget类是一个容器控件&#xff0c;它提供了一个堆叠的页面布局方式&#xff0c;每个页面可以包含一个子部件。在QStackedWidget中&#xff0c;只有当前活动的页面是可见的&#xff0c;其他页面会被隐藏起来。 QStackedWidget类的常用方法包括&#xff1a; a…...

Java数据结构与算法(leetcode热题881. 救生艇)

前言 救生艇属于贪心算法&#xff0c;解题之前条件一定要归纳好。题目中存在3个要求&#xff1a; 1.一艘船最多坐2人 2.船数要求最小 3.每艘船重量小于limit 意味着体重较轻的两人可以同乘一艘救生艇。 . - 力扣&#xff08;LeetCode&#xff09; 实现原理 1.重量大的有…...

react+wijmo所遇问题

1.官网地址&#xff1a;https://demo.mescius/wijmo/demos/Grid/Overview/react 别进中文地址&#xff0c;注意后缀mescius有没有.cn有的话删掉&#xff0c;那个没有触发方法和各类API&#xff0c;组件也不全 2.中文地址&#xff1a;&#xff08;不太好用&#xff09;&#x…...

手撕设计模式——克隆对象之原型模式

1.业务需求 ​ 大家好&#xff0c;我是菠菜啊&#xff0c;前俩天有点忙&#xff0c;今天继续更新了。今天给大家介绍克隆对象——原型模式。老规矩&#xff0c;在介绍这期之前&#xff0c;我们先来看看这样的需求&#xff1a;《西游记》中每次孙悟空拔出一撮猴毛吹一下&#x…...

LangChain基础知识入门

LangChain的介绍和入门 1 什么是LangChain LangChain由 Harrison Chase 创建于2022年10月&#xff0c;它是围绕LLMs&#xff08;大语言模型&#xff09;建立的一个框架&#xff0c;LLMs使用机器学习算法和海量数据来分析和理解自然语言&#xff0c;GPT3.5、GPT4是LLMs最先进的代…...

Objective-C的初始化方法中,应该如何读写属性

除非有明确的原因需要使用setter, getter, 否则总是应该直接访问, 也就是直接使用实例变量&#xff08;也称为 iVar&#xff09;来读写数据 理由&#xff1a; 避免子类覆盖setter方法的影响&#xff1a;若在初始化方法中使用setter方法, 使用此方法实例化子类, 可能会调用子类…...

基于Python+Flask框架实现的新冠疫情可视化的设计与实现

基于PythonFlask框架实现的新冠疫情可视化的设计与实现 “Design and Implementation of COVID-19 Visualization using Python Flask Framework” 完整下载链接:基于PythonFlask框架实现的新冠疫情可视化的设计与实现 文章目录 基于PythonFlask框架实现的新冠疫情可视化的设…...

大学生如何学习C语言编程?

设计语言》&#xff08;K&R&#xff09;和《C Primer Plus》。 安装开发环境&#xff1a;安装一个C语言编译器&#xff0c;如GCC&#xff0c;以及一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;比如Code::Blocks或Visual Studio。 学习语法&#xff1a;熟悉C语…...

python小tips

函数&#xff1a; 格式&#xff1a; def 函数的名字():函数体例如&#xff1a;def playgame():print("I am playing!")函数调用&#xff1a; playgame()调用的方法&#xff1a; 函数名() 函数的定义只是定义函数&#xff0c;调用了才会有结果 函数的参…...

分布式版本控制工具软件——Git概述

目录 一、Git概述1.为什么要学习Git&#xff1f;&#xff08;1&#xff09;SCM概念&#xff08;2&#xff09;SCM实现 2.什么是版本控制&#xff1f;&#xff08;1&#xff09;版本控制软件的基础功能&#xff08;2&#xff09;集中式版本控制&#xff08;3&#xff09;分布式版…...

【一百零八】【算法分析与设计】P1908 逆序对,P1637 三元上升子序列,树状数组区间和应用

P1908 逆序对 逆序对 题目描述 猫猫 TOM 和小老鼠 JERRY 最近又较量上了&#xff0c;但是毕竟都是成年人&#xff0c;他们已经不喜欢再玩那种你追我赶的游戏&#xff0c;现在他们喜欢玩统计。 最近&#xff0c;TOM 老猫查阅到一个人类称之为“逆序对”的东西&#xff0c;这东西…...

【RK3568】制作Android11开机动画

Android 开机 logo 分为两种&#xff1a;静态显示和动态显示。静态显示就是循环显示一张图片&#xff1b;动态显示就是以特定帧率顺序显示多张图片 1.准备 android logo 图片 Android logo最好是png格式的&#xff0c;因为同一张图片的情况下&#xff0c;png 格式的比 jpg和b…...

chrony内网同步服务器时间

当前需要在10.26.24.62和10.26.24.61两个服务器上设置chrony同步时间&#xff0c;其中10.26.24.62为NTP时间服务器&#xff0c;10.26.24.61去10.26.24.62同步时间 检查Chrony配置文件&#xff1a; 确认10.26.24.62&#xff08;NTP服务器&#xff09;的配置文件 /etc/chrony/c…...

SSM物流管理系统的设计与实现-计算机毕业设计源码44323

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…...

STM32CubeIDE使用过程记录

最近在做一款机器人的开发&#xff0c;使用到了STM32CubeIDE&#xff0c;这里记录一些使用技巧方便后续查阅。 STM32CubeIDE使用过程记录 快捷键开启代码自动补全功能看门狗设置CRC设置IO口取反定时器设置 及 定时器中断外部中断GPIO配置STC15单片机GPIO模式配置片内闪存&#…...

angular2开发知识点

目录 文章目录 一、API 网关地址 配置二、服务注册使用三、模块组件注册使用四、html中style类动态绑定1. 单个类的绑定&#xff1a;[class.special]"isSpecial"2. 多个类的绑定&#xff1a;[ngClass]"{selected:status ,saveable: this.canSave,}"3. 单个…...

【机器学习】机器学习与智能交通在智慧城市中的融合应用与性能优化新探索

文章目录 引言机器学习与智能交通的基本概念机器学习概述监督学习无监督学习强化学习 智能交通概述交通流量预测交通拥堵管理智能信号控制智能停车管理 机器学习与智能交通的融合应用实时交通数据分析数据预处理特征工程 交通流量预测与优化模型训练模型评估 智能信号控制与优化…...

走的人多了,也便成了路(七)

好多年前就听到这样的说法&#xff1a;一流的企业做标准&#xff0c;二流的企业做品牌&#xff0c;三流的企业做产品。 在通信行业待久了&#xff0c;经历了移动通信技术标准的发展历程&#xff0c;体会到很多事情没有那么神秘&#xff0c;甚至由于一些偶然因素的出现&#xff…...

UE5中在地形中加入湖、河

系统水资产添加 前提步骤123 完成 前提 使用版本 UE5.0.3,使用插件为UE内置的Water和water Extras. 步骤 1 记得重启 2 增加地形&#xff0c;把<启用编辑图层>勾选 如果地形没有勾选上编辑图层&#xff0c;那么就会导致湖、河等水景象无法融入地形。 如果忘记勾选…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...