博客要做 前后端分离 ,用到 REST API,但默认的输出内容有些地方不能满足需求 所以需要增加一些个性化的内容。...add_action( 'rest_api_init', 'wp_rest_insert_some' ); //添加到 REST API 中 function wp_rest_insert_some(...'get_callback' => 'get_post_meta_for_api', //在 posts 中展示一些指定的文章自定义字段 'update_callback' =>...时也输出你的博客名称: add_action( 'rest_api_init', 'wp_rest_insert_some' ); //注册函数加入 REST API function wp_rest_insert_some...(){ //注册函数 register_rest_field( 'post', 'blog_name', //要注册的字段名 array(
WordPress JSON REST API (WP API) 简介 这个插件(WordPress JSON REST API (WP API))提供了一个易于使用的REST API,让我们可以通过...WP API为WP查询创建了一个简单而方便的接口,文章API,文章元数据API,用户API,版本API等等。WordPress能做的事情,WP API同样可以让你做到,并且更加方便。...WordPress JSON REST API (WP API)的使用 WP REST API插件的使用还是非常简单的,在Wordpress后台下载安装好WP REST API插件后,启用插件,注意...edit: 更新文章时用来添加附加字段,包括 title_raw, content_raw, guid_raw 和自定义字段, 以适应文章编辑。...返回 如果请求的文章存在,将返回请求文章内容,返回的字段根据context参数所定。
这个入门单元会在两个阶段启动一个带有响应前端的 WordPress 后端,与 WP REST 编程接口进行对话。要使用它,请克隆保管库。...Post light 在前一年左右为我们的客户发送了一些带有响应前端的 Headless WordPress 企业,我们厌倦了不断重复底层的跑腿工作。...你的网站或应用程序需要与一些 API 进行对话,你的 WordPress 内容只是其中之一,而使用 JavaScript 前端来做到这一点更简单。...你必须设置自定义帖子类型和自定义字段(Progressed Custom Fields Master 和自定义帖子类型 UI)的 WordPress 模块。...WordPress 模块在 WP REST 编程接口(ACF 到 WP 编程接口和 WP-REST 编程接口 V2 菜单)中发现那些自定义字段和 WordPress 菜单。
想要使用 REST API 需要自己额外安装插件:WordPress REST API,现在 WordPress 5.0以上的版本已经默认支持 REST API了,不需要额外去安装插件。...新站首次用 Postman 去 访问 REST API 接口,如:http://EXAMPLE_URL/wp-json/wp/v2/posts,会发现返回的是 404,需要自己在管理后台将:设置-固定链接...获取文章形式一直返回falseWP_Query 里查出来无 format 和 sticky 这两个字段,所以只能自己额外获取,但是要注意默认的 standard 标准形式get_post_format...也会返false,所以记得自己要设置一个默认值$format = get_post_format($postId) ?...Object 对象在PHP 中,有三种类型的数组:// 数值数组:以数字为键的数组,键从0开始自增$arr = ['zhou', 'xiao', 'hei'];// 关联数组:带有指定的键的数组,每个键关联一个值
0x02 漏洞分析 其实漏洞发现者已经给出了较为详细的分析过程,接下来说说自己在参考了上面的分析后的一点想法。 WP REST API 首先来说一下REST API。...DELETE触发delete_item方法,将现在删除的发布数据返回给客户端。 静态追踪 知道了WP-API的路由信息以及其操作方式,可以根据其运行的思路来看一下具体实现的代码。...我们看一下/wp-includes/rest-api/endpoints/class-wp-rest-post-controller.php: ?...可以看到在register_rest_route中对路由进行了正则限制: ? 也就是防止攻击者恶意构造ID值,但是我们可以发现$_GET和$_POST值优先于路由正则表达式生成的值: ?...这边没有找到ID为123hh的项目,所以返回rest_invalid。 现在我们可以忽略路由正则的限制,来传入我们自定义的ID。
原理:给每篇文章添加一个自定义字段_commentTime(这个字段的值为最新一条评论的时间)然后使用query_posts函数实现所有文章按照自定义字段_commentTime的值进行排序 具体操作:...我想一篇一篇的添加或许会疯掉。所以这里我给出了两个批量添加方法 1.使用函数将代码添加到主题 functions.php文件中,刷新页面就可以自动为所有文章添加自定义字段。...center为自定义字段的名称,true为值,可根据情况修改。...SQL语句添加到phpmyadmin面板中SQL输入框中并执行2.使用sql语句将下列SQL语句添加到phpmyadmin面板中SQL输入框中并执行 insert into wp_postmeta (post_id...文件中添加相应action代码这一步添加的代码可以实现发布新文章(或新更改)、有新评论的时候,自动添加/更新自定义字段_commentTime的值,不需要你手动添加更改。
本文通过几个例子展示如何定制化输出WordPress REST API 的相关数据。...文章数据(posts)禁止某些字段显示 默认的,当请求类似 your-site.com/wp-json/wp/v2/posts?...的相关字段,如果你需要输出对应文章下所有 post meta 字段,可以用下面的代码启用: // https://devework.com/wordpress-rest-api-dynamic-output.html...get_post_meta( $data['id'], '', '' ); }, )); 输出 post meta 特定字段 接上,如果你在REST API 中仅仅想输出 post meta...特定字段而非全部,则通过类似下面代码: // https://devework.com/wordpress-rest-api-dynamic-output.html function dw_rest_prepare_post
'__return_false'); 我们在这里所做的只是向过滤器挂钩wp_sitemaps_enabled返回的值false,就可以禁用了。...因此,对于典型的WordPress网站,这意味着您的站点地图将包含指向以下站点地图的链接: https://example.com/wp-sitemap-posts-post-1.xml https:/...https://example.com/wp-sitemap-posts-book-1.xml 因此,要排除任何“文章”类型的站点地图,请将以下代码添加到您的主题(或简单的插件)中: // disable...', 10, 2); 这一切都非常简单,这要归功于WordPress核心开发人员,他们为我们提供了非常灵活的API,可以自定义。...根据元字段排除文章 也可以根据其附加的元数据排除特定的文章。例如,如果您的文章有一个名为sitemap的元字段。并且您只想包含sitemap值为1的文章。
但是WordPress中一些比较重要的部分,比如WP_Query , REST API, 包括本文要介绍的Post Type部分都是面向对象,而且WordPress中的一些插件就是全部使用面向对象,比如...// 是否暴露在 Rest API 中 'show_in_rest', // 布尔值,默认为 false // 使用 Rest API 访问的基础 URI...别名 'rest_base', // 字符串,默认为文章类型别名 // 使用自定义 Rest API 控制器而不是默认的 WP_REST_Posts_Controller...,自定义控制器必须继承 WP_REST_Controller 'rest_controller_class', // 字符串,默认为 WP_REST_Posts_Controller...如果你对自己的WordPress数据库有权限,那么你可以直接修改数据库中的wp_options来进行rewrite rules的刷新,本质上这些规则都是存在option_value这个字段中,只要把这个字段的值清空即可
get_post_meta(postID, count_key, true); //查询元字段数据 delete_post_meta(postID, count_key);//删除原字段数据 add_post_meta...ID meta_key,代表需要更新的key meta_value,更新之后的值 prev_value,更新前的值,用户区分具有相对用户ID和key的数据,不指定时将更新所有数据 21.站点URL plugins_url...API文档:https://codex.wordpress.org/Rewrite_API 自定义编辑器 TinyMCE:https://www.tiny.cloud/docs-4x/api/tinymce...p (Object) - 添加到类的方法集合。 root (Object) - 可选的根对象默认为全局窗口对象。...,args ) ,将指定标题的callback内容的新字段添加指定页面的指定分节上面。
0x02 漏洞概述 Defiant的Wordfence威胁情报团队在一个不受保护的REST-API端点中发现了Rank Math特权升级漏洞。...0x03 影响版本 rank math 插件<=1.0.41.1版本 0x04 环境搭建 前置条件: 插件(手动安装): WP Rest API(https://cn.wp.xz.cn/plugins...image.png •admin: image.png 管理者的wp_user_level是10,而订阅者的wp_user_level是0 api信息: ?...从api中可以看到修改元数据的接口,请求方式为POST http://127.0.0.1/wordpress/wp-json/rankmath/v1/updateMeta 找到接口,我们需要查看接口需要什么参数...user_id的值 而关于user_id字段,在用户的个人资料处,查看源码可以找到 ?
添加post_type自定义文章类型就可以了 post_type自定义文章类型实例:产品模型,在当前主题的function.php文件中添加如下代码 // Register Custom Post...// 是否暴露在 Rest API 中 'show_in_rest', // 布尔值,默认为 false // 使用 Rest API 访问的基础 URI...别名 'rest_base', // 字符串,默认为文章类型别名 // 使用自定义 Rest API 控制器而不是默认的 WP_REST_Posts_Controller...,自定义控制器必须继承 WP_REST_Controller 'rest_controller_class', // 字符串,默认为 WP_REST_Posts_Controller...、错误等信息中的字段,我们需要过滤 // 'post_updated_messages' 钩子来自定义这些消息。
重磅功能 前言 将WordPress 作为小程序的后端,建议是做一些针对性的优化(如《WordPress REST API 定制化输出》)以减少HTTP 请求传输过程中不必要字节数。...2)用Node + Redis 写了一个小型的后端,用来转发与缓存 WordPress REST API,Redis 作为内存数据库的缓存机制确保了读过程的快速;这个额外写的后端承载的另外功能是,将原本在小程序端进行的数据处理...评论列表的展示用到的WordPress REAT API 接口是https://example.com/wp-json/wp/v2/comments?...另外,上面的Comment API 默认的数据段是按照时间排序的评论数组,在 WordPress 中存在的父子评论关系在 API 中是通过parent与id两个字段联系起来。...为了将这两种账户体系打通,Jeff 是把小程序的用户头像URL 作为WordPress 评论的“网址”字段,然后在PC 的主题上也做了相应的改造。 ?
在 GitHub 社区中,曾经有过关于它的讨论[13],从 2017 年开始,社区就在推荐大家使用 alias 功能重写 wp 命令,来将 --allow-root 参数添加到真实运行的命令中...方案二:WP REST API 虽然上文中提到了 WP REST API 当前的窘况,但好在目前 6.5.0 版本中,官方还是对它进行了支持,虽然没有明确文档告知用户该如何使用(应该是暂时减少支持工作消耗的开发同学的精力...“真”,来开启 WP REST API 能力。...rest_route=%2Fwp%2Fv2%2Ftags&post=1"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated...WP REST API 的安全加固 相比较 WP CLI,因为提供了 HTTP 访问,所以 WP REST API 的安全加固就相对麻烦一些。 不过,有一部分 WP CLI 的策略是可以借鉴的。
在 GitHub 社区中,曾经有过关于它的讨论,从 2017 年开始,社区就在推荐大家使用 alias 功能重写 wp 命令,来将 --allow-root 参数添加到真实运行的命令中...方案二:WP REST API虽然上文中提到了 WP REST API 当前的窘况,但好在目前 6.5.0 版本中,官方还是对它进行了支持,虽然没有明确文档告知用户该如何使用(应该是暂时减少支持工作消耗的开发同学的精力...,来开启 WP REST API 能力。...rest_route=%2Fwp%2Fv2%2Ftags&post=1"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated...WP REST API 的安全加固相比较 WP CLI,因为提供了 HTTP 访问,所以 WP REST API 的安全加固就相对麻烦一些。不过,有一部分 WP CLI 的策略是可以借鉴的。
背景 这里有个用户提的 issue (我自己转发的),之后一个月左右不会再周更 Tony 主题了,所以赶快把这个需求做了 代码 使用 Vue.js + Axios.js + WordPress REST...API 来实现在快速预览展开情况下获取评论列表并支持发送评论 在使用 WordPress REST API 发送 POST 请求时需要使用内置函数 wp_create_nonce( 'wp_rest...' ) 获取 REST API 识别码并且添加到请求头部 preview: function (postId) { //预览文章内容 var previewingPost = $('.article-list-item...php echo wp_create_nonce( 'wp_rest' ); ?...== ''){ axios.post('/wp-json/wp/v2/comments?
,来以LeanCloud的Rest Api来练手.前两节的示例,我们都是使用自定义的PHP接口来作为测试服务器,但是真实的服务器接口是涉及到许多细节的,比如一个基本的权限控制机制,用户登录登出等.为了能更真实快速的开始网络请求类的重构...本文将实现一个拥有真实数据的博客App的Demo,数据源取自博客主站:ios122.com. 完整代码示例下载: github 将WP导出的XML数据转换成JSON文件,导入LeanCloud....这是原始的从wp中导出的主站的所有文章: http://ios122.bj.bcebos.com/Post.xml....Api的iOS REST Client....md5 加密 LeanClodu Rest API 需要在本地对masterKey在本地做一次md5加密,我封装了一个方法,可以直接用: /** * 将字符串md5加密,并返回加密后的结果
API 在将下面代码添加到主题functions.php文件中: // 彻底关闭自动更新 add_filter('automatic_updater_disabled', '__return_true.../avatar/ inwao https://gravatar.inwao.com/avatar/ 安装wp super cache插件 屏蔽reset api 在将下面代码添加到主题functions.php...文件中: // 屏蔽 REST API remove_action('init', 'rest_api_init' ); remove_action('rest_api_init', 'rest_api_default_filters...', 'rest_cookie_check_errors', 100 ); 移出后台帮助内容 在将下面代码添加到主题functions.php文件中: `// 移除后台界面右上角的帮助 add_action...在将下面代码添加到主题functions.php文件中: `// 移除后台界面右上角的选项 add_action('in_admin_header', function(){ add_filter('
在上面的示例中, serializer 将接受并验证包含三个字段的 json:name、age 和 type。...其中 name 和 type 必须是strings, age 必须是建议的 integer。默认情况下,字段是必需的,如果不提供,serializer 将标记为无效。...自定义验证 对于需要自定义验证的值(除了简单的类型检查), def validate_(self, attrs, source) 可以创建其中 <variable_name...例如给定的输入 { 'age':5, 'type':'puppy' } serializer 将返回一个错误,指出未提供所需的字段名称。...另一种方法使用了更多的 Django Rest Framework 的特性, ModelSerializer from rest_framework import serializers from sentry.api.serializers.rest_framework
@Min 和 @Max:指定数字字段的最小值和最大值。 @Pattern:指定字符串字段必须匹配的正则表达式模式。 @Email:指定字符串字段必须是有效的电子邮件地址。...EmailNotEmpty 组将包含当 email 字段不为空时的验证规则,而 Default 组将包含所有三个字段的正常验证规则。...7 对复杂逻辑使用跨域验证 如果需要验证跨多个字段的复杂输入规则,可以使用跨字段验证来保持验证逻辑的组织性和可维护性。跨字段验证可确保所有输入值均有效且彼此一致,从而防止出现意外行为。...RestExceptionHandler 类来处理我们的 REST API 抛出的异常。...有了这个异常处理代码,我们的 REST API 抛出的任何验证错误都将被捕获并以结构化和有意义的格式返回给用户,从而更容易理解和解决问题。
领取专属 10元无门槛券
手把手带您无忧上云