我通过HTTP REST API插件访问Wordpress数据(这个wordpress插件:http://v2.wp-api.org/).我知道如何抓住我的帖子标题,但如何使用此插件显示与该帖子相关的精选图片?我的测试显示了帖子标题和特色图片ID,但我不确定如何显示实际图像.测试例.
这是我的代码:
<div ng-app="myApp">
<div ng-controller="Ctrl">
<div ng-repeat="post in posts | limitTo: 1">
<h2 ng-bind-html="post.title.rendered"></h2>
<p>{{ post.featured_image }}</p>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-sanitize.min.js"></script>
<script>
var app = angular.module('myApp', ['ngSanitize']);
app.controller('Ctrl', function($http, $scope) {
$http.get("http://ogmda.com/wp/wp-json/wp/v2/posts").success(function(data) {
$scope.posts = data;
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我将Wordpress + WooCommerce与WP-API结合使用,作为我的移动电子商务应用程序的后端。
我的目标是在应用程序中提供一些社交登录(通过Facebook,Twitter,Google等)以注册/登录,然后使用WooCommerce API接收例如该经过身份验证的用户的所有订单。
目前我的计划是:
但是我在#3上苦苦挣扎,因为我真的不知道如何检查用户是否经过身份验证。
我考虑过要创建另一个端点,该端点将与OAuth授权服务器联系以使用例如Facebook的访问令牌来检查用户的凭据。如果检查是有效的,我将使用userID,email等的一些哈希值为我的API创建自定义访问令牌,该哈希值会发送回客户端应用程序。然后,此访问令牌用于对我的API的每次调用,然后从哈希令牌中读取用户ID,并返回例如该用户的所有订单。
但是以某种方式感觉不对。特别是因为这样,我将创建一个永无止境的实时访问令牌...
如果帖子存在与否,我正试图通过帖子标题进行检查.出于某种原因,当我尝试类似的东西:
http://domain.com/wp-json/wp/v2/posts?filter[post-title]=table
Run Code Online (Sandbox Code Playgroud)
我希望如果存在名称表的帖子,要获得帖子,如果没有,请获得空响应.但由于某种原因,当帖子标题不存在时,我会收到所有帖子.如果没有帖子,那么怎么会变空?
我以前在几个网站上使用过WordPress REST API版本1(V1).我广泛使用的一个功能是能够在单个查询中调用多个帖子类型.
在WP REST API版本1中,我能够使用以下端点来获取包含来自两者book
和movie
帖子类型的帖子的列表:
http://example.com/wp-json/posts?type[]=book&type[]=movie
Run Code Online (Sandbox Code Playgroud)
我已经设置了我的自定义帖子类型,以便可以从api访问它们,并且可以像这样调用:
http://example.com/wp-json/wp/v2/book/
http://example.com/wp-json/wp/v2/movie/
Run Code Online (Sandbox Code Playgroud)
在WP REST API Version 2(V2)中实现此目的的最佳方法是什么?我已经研究过自定义端点,但我不确定这对我来说是最好的解决方案(http://v2.wp-api.org/extending/adding/).可能有十几种自定义帖子类型,我需要根据用户输入他们想要查看的内容类型来运行动态查询.
如果有人之前处理过类似的问题,我愿意接受想法或建议.
感谢大家!
更新:
在WP-API问题论坛中我被告知在V2中这是不可能的:https://github.com/WP-API/WP-API/issues/2567
这对我来说根本没有意义.在WordPress中,我可以为其创建一个帖子类型,movie
并且book
可以共享一个自定义分类genre
.使用WP_Query
,如果我愿意的话,我可以在一个循环中根据类型查询这两种帖子类型.为什么WordPress的REST API不包含同时查询这两者的基本功能,特别是因为它在V1中工作正常?如果没有此功能,我将无法将当前的Web应用程序从V1更新到V2.
我现在的问题是,是否有人成功创建了可以创建此功能的端点?
如何为路由的 注入依赖项UrlMatcher
?
我需要调用后端 API,以便为每个 URL 找出正确的路由(通过解析重写规则并在 WordPress 中运行查询)。
这就是为什么我需要一个 Singleton 服务UrlMatcher
来获取数据一次,然后使用它来确定路由(然后将它注入到具有获取数据的组件中)。
我创建了一个 UrlMatcher 工厂:
{
component: PostComponent,
matcher: wpApiUrlMatcherFactory('post')
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在所有这些服务中使用相同的服务,以及如何在不使用不良实践代码的情况下创建它。
routing dependency-injection single-page-application wp-api angular
我正在WordPress上构建一个需要简单前端表单的应用程序,任何人都可以提交需要保存在数据库中的信息。我正在尝试通过REST API处理此问题。(由于应用程序的性质,提交此信息时不能对页面进行任何重定向。)
设置REST API(v2)没问题,这样我就可以提交帖子了。当我登录WordPress时,效果很好。当我未登录WordPress时尝试填写表格时,收到错误消息。
加载资源失败:服务器响应状态为403(禁止)
如何设置API以接收任何未经身份验证的人的POST?
这是我的JavaScript:
$( '#post-submission-form' ).on( 'submit', function(e) {
e.preventDefault();
var title = $( '#post-submission-title' ).val();
var excerpt = $( '#post-submission-excerpt' ).val();
var content = $( '#post-submission-content' ).val();
var status = 'draft';
var data = {
title: title,
excerpt: excerpt,
content: content
};
$.ajax({
method: "POST",
url: POST_SUBMITTER.root + 'wp/v2/posts',
data: data,
beforeSend: function ( xhr ) {
//xhr.setRequestHeader( 'X-WP-Nonce', POST_SUBMITTER.nonce );
},
success : function( response ) {
console.log( response );
alert( POST_SUBMITTER.success );
}, …
Run Code Online (Sandbox Code Playgroud) 我想更快地向WordPress API发出请求.我的API在插件中实现(使用register_rest_route来注册我的路由).但是,由于这是一个插件,所有内容都加载了它(子主题和主题),基本上对这个API的查询需要半秒钟,因为加载了所有这些无用的部分.
WordPress API不能以其他方式使用吗?由于大多数使用WP-API的插件不需要加载任何其他插件,更不用说主题......我不明白他们怎么会错过这个.
反正有没有这样做?
如何在单个帖子wordpress api中获得上一个和下一个帖子,我无法得到这个,如何使json上一个和下一个像没有API的wordpress我想得到slug帖子我可以在单个帖子中使用下一个prev,如何获得下一个和上一个的slug,link或id post
<?php
$prev_post = get_previous_post();
if (!empty( $prev_post )): ?>
<a href="<?php echo $prev_post->guid ?>"><?php echo $prev_post->post_title ?></a>
<?php endif ?>
Run Code Online (Sandbox Code Playgroud)
像这样但在json中使用 https://codex.wordpress.org/Function_Reference/previous_post_link
我是WP-REST API和Wordpress的新手。我尝试使用端点wp-json / wp / v2 / posts获取帖子列表,但出现经典的403错误。
我想问一下是否有一种方法可以禁用GET请求(如帖子,类别等)的身份验证,因为我想创建一个Web应用程序,用户无需身份验证即可在其中自由导航和查看它们。谢谢大家的回答。
由于几乎无法访问此外部站点上的服务器,因此我使用WordPress和WP REST API v2来提取当然在WordPress上管理的内容.效果很好!
我已经能够将此外部网站的联系表格7数据形式发布到此WordPress网站,它确实发送了一封电子邮件,但表单没有验证,并且在帖子上它返回此错误.
{
"code": "rest_cannot_edit",
"message": "Sorry, you are not allowed to edit this post.",
"data": {
"status": 401
}
}
Run Code Online (Sandbox Code Playgroud)
它发布到页面https://www.flambang.com/wp-json/wp/v2/pages/1666?_=1498600326410#wpcf7-f11791-o1,奇怪的是它甚至有效 - 意思是发送电子邮件并将联系人数据添加到数据库.
有没有人使用Contact Form 7和通过JSON via和WP REST API提供的数据?我可以使用其他端点吗?
谢谢,
保罗