WP二开

WordPress开发发现界面接口

银戒 · 4月17日 · 2019年 · · · 1257次已读

引言

本教程为《教你用WordPress开发app(小程序)-包含所有源代码》系列教程之一。

本教程后续更新会放在:清空网络科技工作室官网

在上一节中我讲解了用uni-app框架开发发现页面,在这一小节中我将讲解如何用WordPress开发发现页面的api接口。

开始

在发现页面中要显示的内容有六个分类,最新的几篇文章和六个标签,所以在该api接口中我们需要将这些都查出来。

创建六个分类

创建完成后如图:

创建六个标签

创建完成后如图:

编写接口

在我们自制主题的api文件夹下面新建接口文件:find.php

在find.php中写入如下代码:

<?php 
// 接口名:发现页面
// 接口功能:获取六个分类,获取几篇最新文章,获取六个标签
// 教程地址:https://www.inacorner.top/455.html
header('Access-Control-Allow-Headers:*'); 
//引入WP加载文件,引入之后就可以使用WP的所有函数 
require( '../../../../wp-load.php' );

//定义返回数组,默认先为空
$data = [];

// *******************************************获取六个分类*************************************
//获取所有分类id
$catIds = get_all_category_ids();
// 定义分类返回数组,默认为空
$cats = [];
// 根据分类id获取分类名称并且push进$cats,只需要六个所以循环六次
for ($i = 0; $i <6 ; $i++) {
	$catList['ID'] = $catIds[$i];
	$catList['name'] = get_cat_name($catIds[$i]);
	$cats[$i] = $catList;
}

// *****************************************获取六个标签**************************************
// 定义标签返回数组,默认为空
$tags=[];
      //wp获取标签函数
$tagData=get_tags(array('hide_empty'=>false));

// 将标签push进$tags,只需要六个所以循环六次
for ($i = 0; $i <6; $i++) {
	$tagLi['ID']=$tagData[$i]->term_id;
	$tagLi['name']=$tagData[$i]->name;
	$tags[$i] = $tagLi;
}

//***************************************获取最新文章**************************************
// 定义文章返回数组,默认为空
$posts=[];
// 使用wp的查询文章函数查询最新文章列表
// 1、定义查询条件
$args = array( 
	'post_type'=>'post',  //查询文章类型
	'post_status'=>'publish', //查询文章状态
	'posts_per_page'=>6,  //显示6篇文章
	'orderby'=>'date',  //按照时间排序
	'order'=>'DESC'
);
// 2、开始查询文章
query_posts($args);
if (have_posts()){ //如果查询出来了文章
	// 循环文章数据
	while ( have_posts() ) : the_post();
		// 获取文章id
		$post_id=get_the_ID();
		// 定义单条文章所需要的数据
		$list=[
			"id"=>$post_id,  //文章id
			"title"=>get_the_title(), //文章标题
			"img"=>get_the_post_thumbnail_url() //文章缩略图
		];
		// 将每一条数据分别添加进$posts
		array_push($posts,$list);
	endwhile;
}else {
	// 如果没有文章
	$posts=[];
}

//*********************************返回值***********************************************

$data['cats'] = $cats;
$data['tags'] = $tags;
$data['posts'] = $posts;
print_r(json_encode($data));

上传,在浏览器中访问接口,我的地址是: http://appblog.inacorner.top/wp-content/themes/wpApp/api/find.php

结束

在本接口中主要用到了一些wp的内置函数,其他的只要你略懂点php都能看得懂,所以总的来说难点并不大,如果你有什么疑问可以在下方留言。

代码仓库:https://github.com/sliverRing/wpApp

0 条回应