WordPress 常用接口
像素鱼丸
2024-05-04
662

简介

WordPress v4.4以后,已经内置了WP REST API。

接口文档:https://developer.wordpress.org/rest-api/

The WordPress REST API provides an interface for applications to interact with your WordPress site by sending and receiving data as JSON (JavaScript Object Notation) objects. It is the foundation of the WordPress Block Editor, and can likewise enable your theme, plugin or custom application to present new, powerful interfaces for managing and publishing your site content.

RESTful API 路由地址

所有接口地址都以 /wp-json/ 开始,比如获取文章列表的地址是 http://oursite.com/wp-json/wp/v2/posts

Posts	                /wp/v2/posts
Post Revisions	        /wp/v2/posts//revisions
Categories	            /wp/v2/categories
Tags	                /wp/v2/tags
Pages	                /wp/v2/pages
Page Revisions	        /wp/v2/pages//revisions
Comments	            /wp/v2/comments
Taxonomies	            /wp/v2/taxonomies
Media	                /wp/v2/media
Users	                /wp/v2/users
Post Types	            /wp/v2/types
Post Statuses	        /wp/v2/statuses
Settings	            /wp/v2/settings
Themes	                /wp/v2/themes
Search	                /wp/v2/search
Block Types	            /wp/v2/block-types
Blocks	                /wp/v2/blocks
Block Revisions	        /wp/v2/blocks//autosaves/
Block Renderer	        /wp/v2/block-renderer
Block Directory Items	/wp/v2/block-directory/search
Plugins	                /wp/v2/plugins

输出友好数据

在 /wp-inclue/functions.php 中找到该函数,添加 JSON_UNESCAPED_UNICODE。

function wp_json_encode( $data, $options = 0, $depth = 512 ) {
	// $json = json_encode( $data, $options, $depth );
	$json = json_encode( $data, JSON_UNESCAPED_UNICODE, $depth );

	.....

	// return json_encode( $data, $options, $depth );
	return json_encode( $data, JSON_UNESCAPED_UNICODE, $depth );
}

常用接口

1、文章

1) 获取最新文章默认获取到最新的10篇文章

http://test.com/wp-json/wp/v2/posts

http://test.com/wp-json/wp/v2/posts?page=1&per_page=5

效果相同,page用于指定页数,WP REST API 默认返回10条数据,用page指定数据获取的游标。如

http://test.com/wp-json/wp/v2/posts?page=2

可取回最新的第11条数据到第20条数据,以此类推。

2) 设置获取的每页文章数量及分页

http://test.com/wp-json/wp/v2/posts?filter[posts_per_page]=5

filter[posts_per_page]=5 用于指定返回文章每页的数量,这里指定每页数量为5篇。

filter[posts_per_page]与page联合使用:

http://test.com/wp-json/wp/v2/posts?filter[posts_per_page]=5&page=2

3) 获取指定分类的文章

http://test.com/wp-json/wp/v2/posts?filter[cat]=2

filter[cat]=2 指定分类ID为2 ,返回分类ID为2的文章。

分类ID是每个分类目录在创建时自动生成的ID,在wordpress后台“文章”==》“分类目录”中,把鼠标放在分类名称上面,页面下方会出现一个网址,网址中的参数tag_ID=2就是这个分类名称的分类ID。如果没有出现网址,可以点击分类名称下的“编辑”,然后查看网页地址栏,同样可以得到tag_ID=2。下面的标签ID的获得方法也一样。

4) 获取指定标签的文章

http://test.com/wp-json/wp/v2/posts?filter[tag]=library

filter[tag]=library 指定标签名为“library”的文章

5) 获取指定分类和有指定标签的文章

http://test.com/wp-json/wp/v2/posts?filter[cat]=2&filter[tag]=library

上面两个结合一起,可以得到更具体精确的文章。

6) 获取指定日期的文章

http://test.com/wp-json/wp/v2/posts?filter[year]=2016&filter[monthnum]=03

filter[year]=2016&filter[monthnum]=03 设置指定的日期

7) 获取指定作者的文章

http://test.com/wp-json/wp/v2/posts?filter[author_name]=jinyun

filter[author_name]=jinyun设置指定作者名字

8) 按关键词搜索文章

http://test.com/wp-json/wp/v2/posts?filter[s]=金云

filter[s]=金云 :按给定的关键词搜索文章,返回包含“金云”关键词的文章。

9) 获取随机文章

http://test.com/wp-json/wp/v2/posts?filter[orderby]=rand

其中orderby还可以为指定的字段排序

10) 获取相关文章

在网站中,在做SEO优化和页面内容布局时,获取相关文章是比较常见的,可以通过以上几个条件组合来达到获取相关文章的效果。

按标签获取相关文章:

http://test.com/wp-json/wp/v2/posts?filter[orderby]=rand&filter[tag]=library&filter[posts_per_page]=6

按分类获取相关文章:

http://test.com/wp-json/wp/v2/posts?filter[orderby]=rand&filter[cat]=2&filter[posts_per_page]=6

11) 获取指定文章的数据

http://test.com/wp-json/wp/v2/posts/189

得到ID为189的文章数据

2、分类和标签

1) 获取所有的分类

http://test.com/wp-json/wp/v2/categories

2) 获取指定分类ID的分类信息

http://test.com/wp-json/wp/v2/categories/2

3) 获取所有的标签

http://test.com/wp-json/wp/v2/tags

4) 获取指定标签ID的标签信息

http://test.com/wp-json/wp/v2/tags/3

3、媒体文件

1) 获取所有的媒体信息

http://test.com/wp-json/wp/v2/media

2) 获取指定媒体ID的媒体信息

http://test.com/wp-json/wp/v2/media/17

4、页面

1) 获取所有的页面信息

http://test.com/wp-json/wp/v2/pages

2) 获取指定页面ID的页面信息

http://test.com/wp-json/wp/v2/pages/289

5、类型

1) 获取当前wordpress所有的内容类型

http://test.com/wp-json/wp/v2/types

一般情况下会返回post,page和attachment三种类型

2) 获取指定类型

http://test.com/wp-json/wp/v2/types/post

6、评论

1) 获取所有评论信息

http://test.com/wp-json/wp/v2/comments

2) 获取指定评论ID的单条评论信息

http://test.com/wp-json/wp/v2/comments/2

7、用户

1) 获取所有的用户信息

http://test.com/wp-json/wp/v2/users

2) 获取指定用户ID的用户信息

http://test.com/wp-json/wp/v2/users/1

备注:

WordPress 默认的接口汉字默认是转换为 中文不转为unicode,把 WP_REST_Server -> serve_request json_encode() 的函数,添加一下,JSON_UNESCAPED_UNICODE 中文不转为unicode ,对应的数字 256。

参考:

http://developer.wordpress.org/rest-api/

收藏
打赏
WordPress 添加文章浏览次数
上一篇
PHP 语法
下一篇

发表评论

注册不是必须的

像素鱼丸
160 文章
2 评论
4 喜欢
最新文章

VooShop 商城主题

主题简介 Vooshop 是一个简单精美的 WordPress 主题,支持自适应、暗黑模式、多语言等功能,可以用于企业、团体、自由职业者或更广泛的主页。 Vooshop:回归 WooCommerce 的纯粹与极速 零冗余代码,零多余功能。一个完全依赖 WooCommerce 原生能力的轻量级主题。 Vooshop 不做 WooCommerce 做不到的事,我们只负责让它跑得更快。 市面上的主题总试 […]

XZhan 主题

主题简介 XZhan 主题(中文名称:小站主题)是一款 WordPress 企业主题,支持自适应、暗黑模式等功能,可快速构建高质量的企业网站。   主题特色 支持白天与暗黑模式 自适应设计,兼容多种主流浏览器 自定义主色调 LOGO扫光动画 自定义SMTP支持 内置SEO功能 文章支持点赞、分享和海报生成 丰富的小工具 侧边栏粘性滚动 简介的主题设置面板 主题设置可导入和备份 多级子菜单 […]

StarFish 配置框架

一个轻量级的 WordPress 选项框架插件,通过配置化的方式,快速为 WordPress 主题或插件生成后台设置页面。 ✨ 特性 🎯 配置驱动 UI:只需定义数组配置,自动生成完整的表单界面 📱 多页面架构:支持多个独立的设置页面 🎨 丰富的字段类型:包含 15+ 种常用字段类型 🔗 字段依赖系统:实现字段间的联动效果 ✅ 数据验证与清理:自动进行安全清理,防止 XSS 攻击 🚀 零依赖:使用 […]

什么是幽灵按钮

“幽灵按钮”(Ghost Button)是一种常见的网页与移动应用 UI 设计模式,指背景透明(或半透明)、仅通过边框(border)和文字(text)定义的按钮,视觉上“若隐若现”,仿佛“幽灵”一般——因此得名。 核心特征: 无填充色(transparent background) 背景完全透明(或与父容器同色),不遮挡背后内容。 清晰的边框(通常 1–2px 实线) 如 border: 2px […]
生成中...
扫描二维码
扫描二维码
确认购买

您确定要购买此资源吗?

微信扫码支付

请使用微信扫描二维码完成支付

订单号:

等待支付...