```
esc_sql( string|array $data )
```
[esc\_sql()](https://developer.wordpress.org/reference/functions/esc_sql/) 函数用于转义字符串或者数组,但是一般还是建议使用 [wpdb::prepare()](https://developer.wordpress.org/reference/classes/wpdb/prepare/),因为后者更安全些。
## 使用范围
1. 在一些 IN 语句中
2. 字符串中包含‘%’百分号的查询
3. 比如LIKE 语句
## 使用注意
使用该函数的时候,变量在SQL代码里面应该被单引号包括。如下
```
<?php
$name = esc_sql( $name );
$status = esc_sql( $status );
$wpdb->get_var( "SELECT something FROM table WHERE foo = '{$name}' and status = '{$status}'" );
//错误示范
//$wpdb->get_var( "SELECT something FROM table WHERE foo = {$name} and status = {$status}" );
?>
```
*****
```
wpdb::prepare( string $query, array|mixed $args )
```
[wpdb::prepare()](https://developer.wordpress.org/reference/classes/wpdb/prepare/) 函数被用于安全的执行SQL查询,类似于PHP里面的sprintf()输出,变量在后,查询代码里面使用占位符。
## 使用
可以在查询字符串中使用三种占位符:%d(整数)%f(浮动)%s(字符串),按照实际情况使用。
```
$wpdb->query(
$wpdb->prepare(
"SELECT id FROM wp_posts WHERE id > %d AND `post_status` = %s",
$min_id, $status
)
);
```
## 使用注意
1. 占位符在查询里面不得使用任何符号包括,比如引号,括号等等
2. 查询字符串里面确实包含【%】的话,比如【LIKE查询】,改写为【%%】
3. 查询里面并不是所有都需要做占位符替换的,但是占位符和后置的变量数目必须一致
4. 后置变量可以是单独的几个,也可以用数组包围起来,但是不能混用
- 文档说明
- 后台定制类
- WordPress后台样式
- WordPress创建后台小工具
- WordPress增加新的角色
- WordPress修改默认角色名
- WordPress后台顶部去除新建文章
- WordPress后门代码,仅参考思路,创建管理员
- 对订阅用户隐藏资料页面
- 修改WordPress后台侧边栏菜单名字
- 修改自定义文章菜单图标
- 基于用户角色权限区分不同的功能
- WordPress修改登录页面图标,名字等功能
- WordPress对于非管理员禁用密码修改栏
- WordPress禁用顶部工具栏
- WordPress后台强制使用某种语言
- WordPress自定义后台登录失败提示
- WordPress使用一栏后台
- WordPress后台自定义联系方式
- WordPress将一些页面跳转到后台
- 用户登陆后跳转到指定页面
- WordPress禁用后台欢迎工具
- WordPress后台代码文件必备验证
- WordPress自定义后台欢迎面板内容
- WordPress判断是否为指定post-type
- WordPress用户描述支持HTML代码
- WordPress自定义后台右下角文字
- WordPress禁用全部小工具
- 评论互动类
- 给评论提交按钮添加class
- WordPress禁用附件评论
- WordPress评论去除链接栏
- 告诉用户文章N天之后即将关闭评论
- 限制评论字数
- WordPress屏蔽指定外文垃圾评论
- WordPress替换评论者链接
- WordPress转换评论中的HTML实体
- 去除自定义里面不想要的控制器
- 从自定义里面去除自定义CSS
- WordPress增加子主题名字到body class里面
- 自定义WordPress的body_class
- 修改WordPress媒体库上传文件格式限制
- 导航类
- WordPress面包屑导航
- 在导航栏加入搜索框
- 在导航里面添加自定义项目
- 高亮导航
- 图片类定制
- 去除WordPress图片尺寸限制
- 固定WordPress插入图片设置
- 禁用WordPress的响应式图片
- WordPress增加全站图标
- WordPress后台媒体库替换缩略图链接
- WordPress自动将第一个图片设为特色图
- WordPress要求必须增加特色图才可以发布
- 第三方服务类
- WordPress禁用谷歌字体
- WordPress禁用emojis
- 百度主动推送代码
- WordPress前台禁用dashicon图标字体
- 邮箱服务类
- 关闭WordPress注册邮箱通知功能
- 修改用户前线邮箱通知
- 头像类
- WordPress禁用gavatar头像
- WordPress自定义默认头像
- WordPress替换头像服务器
- 安全防御类
- 禁用WordPress的xmlrpc功能
- WordPress维护模式代码
- WordPress数据库维护代码
- WordPress去除版本号
- 网站登录验证
- 禁用pingbak
- 条件判断类
- 判断评论用户是否为注册用户
- WordPress判断是否是管理员
- WordPress判断是否登录
- SEO优化类
- WordPress替换网站描述
- WordPress文章描述
- 将特色图设置到OG标签
- 自定义默认文章标题
- 页面支持摘要
- 在某些页面模板中禁用编辑器
- 移除某些页面模板
- 权限控制类
- 针对不同状态显示不同颜色
- 文章显示过期提示
- 从文章内容提取描述
- 短代码保护邮箱
- 在用户栏修改用户ID
- 未登录用户强制跳转登录页
- 分类描述支持HTML
- 移除已存在的分类
- 支持在小工具使用短代码
- 禁用主题插件编辑器
- 定义默认主题slug
- 禁用默认主题的安装
- 禁止主题和插件文件修改
- wp-config.php参数
- 修改数据前缀
- 清理无用自定义字段
- 在编辑器周围自定义内容
- 清理头部乱七八糟无用的代码
- 禁用图片的说明文字
- 禁用可视化编辑器
- WordPress各PHP页面用缓存做数据交换
- 网络资源类
- 网络二维码API
- bat批处理微信多开
- 获取IP地址接口
- 页面组件类
- 黑色网页页脚
- 黑色页脚二
- 微软卡片式通栏模块
- 增强内置的延迟加载性能
- WordPress 禁用 admin/login 跳转
- WordPress HOOKS执行顺序
- 服务器类
- LNMP管理命令行
- 宝塔命令行
- 数据库类
- WordPress数据库查询的安全处理
- 数据获取类
- 通过ID获取文章内容
- WordPress根据页面模板路径获取页面ID
- 获取文章第一个链接
- WordPress获取当前页面链接
- 获取顶层页面的ID
- WordPress优化类
- WordPress自定义路由
- WordPress隐藏部分插件
- 关闭WordPress核心,主题,插件更新
- WordPress禁用RSS订阅
- WordPress禁用静态资源版本查询
- WordPress去除后台logo
- WordPress内容仅限登录用户查看
- WordPress延迟RSS订阅
- WordPress屏蔽部分分类
- WordPress根据UA切换主题
- 自定义摘要字数
- 自定义更多内容文字
- 文章底部版权声明以及自定义内容
- 小工具支持PHP代码
- WordPress文本编辑器添加少量自定义按钮
- WordPress文章关键字替换
- WordPress首页排除某些分类文章
- WordPress添加隐藏的设置页面
- WordPress加载自定义jQuery库
- 限制WordPress版本号数目
- WordPress搜索结果包含自定义文章类型
- 禁止ping到自己的WordPress网站
- 在源代码页脚显示资源消耗
- WordPress禁用自带的小工具
- WordPress后台删除不必要的小工具
- WordPress指定用户投稿分类
- WordPress增加ajax点赞功能
- 自定义WordPress登录背景
- WordPress强制阻止代码转义功能
- WordPress页面伪静态化
- WordPress代码版sitemap地图
- WordPress非管理员不准进入后台
- WordPress注册之后跳转到指定页面
- WordPress增加通用短代码下拉按钮
- WordPress给不同状态的文字添加颜色
- 后台添加操作指引
- 短代码实现倒计时显示功能
- 让登录用户选择跳转到哪里
- WordPress定时任务
- PHP验证当前时间是否在指定时间段
- Git 命令大全
- 常用JS代码
- 常用js函数使用方式
- 实用js函数代码