Questions tagged «rest-api»

有关用于访问WP内容和数据的核心RESTful HTTP API的问题。

4
是否在普通的Wordpress 4.7安装中安装并启用了Wordpress REST API?
我刚刚安装了Wordpress 4.7。声明中提到的其中之一是它具有REST API。 我的理解是: 不再需要Wordpress REST API插件,因为据推测它已经与Wordpress 4.7中的核心合并。 默认情况下启用Wordpress REST API 但是,我注意到在普通的Wordpress 4.7安装中,似乎没有端点可用(例如http://examples.com/wp-json/wp/v2/posts)。 我如何知道新的REST API是否真的被激活?可以使用普通的Wordpress UI启用或禁用REST API,还是应该安装第三方插件来实现?
29 rest-api 

4
WordPress 4.7.1 REST API仍然向用户公开
我将WordPress升级到4.7.1,然后尝试通过REST API枚举用户,该API应该是固定的,但我能够检索用户。 https://mywebsite.com/wp-json/wp/v2/users 输出: [{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ... 最新版本的变更日志: REST API公开了所有创作了公共帖子类型帖子的用户的用户数据。WordPress 4.7.1将此限制为仅发布已指定应在REST API中显示的类型。由Krogsgard和Chris Jean报道。 安装plugin之后Disable REST API,似乎一切正常,但是我不喜欢将其用于所有小东西。 使用插件后的输出为: {"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}} 如何在不使用插件的情况下解决此问题,或者为什么甚至在升级此Stil后仍然存在? 编辑30.9.2017 我意识到contact 7插件与之间有冲突Disable REST API,这会给您带来401 unauthorized错误。 当您尝试通过contact 7表单发送消息时,它将发出一个请求 wp-json/contact-form-7/v1/contact-forms/258/feedback 禁用它不是一个好主意。

1
使用Rest V2(WP4.7),如何限制某些RESTFUL动词?
我的目标是限制每种自定义帖子类型的某些RESTUL动词。例如,给定一个Vocabulary自定义帖子类型,我想说: 权限矩阵 +-------+---+----------+ |index | X | GET | |show | O | GET | |create | X | POST | |update | X | PATCH/PUT| |delete | X | DELETE | +-------+---+----------+ V2似乎没有提供这种级别的控制。我已经浏览了源代码,从我所看到的内容来看,没有任何挂钩/过滤器可用于更改权限。 我当前的解决方案如下。它损害了一个类,您可以在该类中针对允许的操作加载自定义帖子类型的矩阵。然后可以在rest_prepare_vocabulary过滤器中调用此方法,如果权限不匹配,则会破坏响应。 问题 我觉得这不是一个合理的解决方案。这意味着权限在两个位置(一个仍在应用中,处于核心位置)和我的过滤器中得到解决。 理想情况下,它将位于配置级别,即定义自定义帖子类型的位置。 换句话说,我宁愿传递规则(沿的线条exclude_from_search,publicly_queryable等等),而不是执行后查询“喀嚓”。 当前解决方案(可行但不理想) Access.php class Access { function __construct($permissions) { $this->permissions = $permissions; …

4
如何通过CURL命令在REST API中使用OAuth身份验证?
我正在尝试将WordPress Rest Api与身份验证结合使用,以从API获取更多数据。我已经安装了Oauth插件,rest-api插件,并从WP-CLI获得了API凭据。 我已经弄清楚了如何在未经授权的情况下访问数据。这有效: // set our end point $domain = "http://localhost/wp-api"; $endpoint = $domain."/wp-json/wp/v2/posts/"; $curl = curl_init($endpoint); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $endpoint, ]); $response = curl_exec($curl); $decoderesponse = json_decode($response, true); ?> <pre> <?php print_r($decoderesponse); ?> </pre> 但是我不知道如何使用凭据进行身份验证。这是我的尝试。我不确定“密钥”和“秘密”是否正确。 // Oauth credentials from wp-cli $ID = "4"; $Key …

6
是否存在is_rest()之类的东西
我从REST API开始。如果我没有完全误导,则init在其REST API请求时也会执行动作挂钩。现在,我只想在不是REST API请求时执行一些代码。 所以我在寻找类似is_rest()的命令以便做类似的事情 <?php if( ! is_rest() ) echo 'no-rest-request'; ?> 但是我找不到这样的东西。有is_rest()外面吗?
18 rest-api 

7
REST API的目的?
首先,我知道这是当前的插件,但是无论如何它几乎肯定是WordPress的一部分。因此,我希望这不会被标记为题外话。 我已经阅读了他们的官方文档,许多其他文章并观看了教程视频,但是我仍然没有得到一些要点。这当然是WordPress的未来,对于移动应用程序的开发以及在之间使用/共享数据非常方便。不同的网站,但是:它仅对我的网站有什么作用? 考虑一下: 我目前正在评论中。我希望注释部分仅在用户滚动到注释部分时才加载(具有-200px的偏移量,因此没有延迟)。 我将在用户滚动到该点时触发ajax调用 Ajax调用发送一些数据吧,像post_id 等 WP_Comment_Query()在服务器上运行 JSON通过评论关系,名称,内容等将数据发送回客户端 使用JavaScript document.createElement(),innerHTML 等创建和输出评论 现在.. 为什么要改用REST API?对我有什么用?只是为了未来? 我仍然需要使用JavaScript来输出我得到的所有数据。.我找不到任何好的文章为什么或为什么我应该使用REST API (网站和移动应用程序开发之间的数据传输除外)。
17 rest-api 


1
如何通过REST API按子标题名称检索帖子?
它适用于我的页面,但不适用于我的帖子。如果我去example.com/wp-json/wp/v2/pages?slug=page-name它会正确检索页面。如果我去example.com/wp-json/wp/v2/posts?slug=post-name它不会以相同的方式检索帖子。有人可以告诉我如何获得名的帖子吗?帖子中也有一个类别,但是我不知道是否有必要或如何将其正确添加到查询中。我找到的所有文档都涉及不再受支持的[filter]函数。
16 urls  rest-api 

4
隐藏公开显示隐藏WordPress REST API v2端点
我想开始使用WordPress REST API v2从我的网站查询信息。我注意到,当我直接访问端点URL时,可以公开看到所有数据。我还看到很多教程都提到了测试服务器或本地服务器的使用,而不是现场站点。 我的问题是: 这是否打算在生产现场使用? 允许端点查看任何人是否存在安全风险,例如 /wp-json/wp/v2/users/显示所有注册到该站点的用户? 是否可以仅允许授权用户访问端点? 我想确保我遵循有关安全性的最佳实践,因此任何提示都将有所帮助。该API文档提到的认证,但我不知道如何阻止URL被直接访问。其他人通常如何设置此数据以供外部应用程序访问而又不暴露太多信息?
15 http  wp-api  rest-api 

2
Wordpress Rest API自定义终结点可选参数
是否可以register_rest_route()在url中使用可选参数? 假设路由以这种方式注册: register_rest_route( 'api', '/animals/(?P<id>\d+)', [ 'methods' => WP_REST_Server::READABLE, 'callback' => 'get_animals', 'args' => [ 'id' ], ] ); 现在可以像/ wp-json / api / animals / 15这样在url上执行api调用,但是有一种方法可以将param声明为可选参数,从而也可以捕获/ wp-json / api / animals /这样的路由。 我也尝试过声明如下路线,但没有成功: /animals/(?P<id>\d+)? 您可以声明不带参数的另一条路线,也可以利用GET参数,但是有没有办法做到这一点register_rest_route()? 感谢您的建议。

2
WP Rest API:最新帖子的详细信息,包括一个请求中的特色媒体网址?
我正在使用wp-rest api来获取帖子信息。我还使用wp rest api过滤器项过滤字段并汇总结果: 当我调用http://example.com/wp-json/wp/v2/posts?items=id,title,featured_media它时,返回的结果如下: [ { "id": 407, "title": { "rendered": "Title 1" }, "featured_media": 399 }, { "id": 403, "title": { "rendered": "Title 2" }, "featured_media": 401 } ] 问题是如何使用此ID生成特色媒体网址?默认情况下,调用会http://example.com/wp-json/wp/v2/media/401返回一个新的json,其中包含有关不同大小的源图片网址的所有详细信息: { "id": 401, "date": "2016-06-03T17:29:09", "date_gmt": "2016-06-03T17:29:09", "guid": { "rendered": "http://example.com/wp-content/uploads/my-image-name.png" }, "modified": "2016-06-03T17:29:09", "modified_gmt": "2016-06-03T17:29:09", "slug": "my-image-name", …

4
使用WP REST API 2过滤多个自定义字段
我想基于具有AND关系的多个acf自定义字段来过滤帖子。像这样: $args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'blue', 'compare' => '=', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ), ); 我什至可以拥有更多过滤器。如何将它们转换为REST API 2过滤器?

7
WP REST API:按类别1和类别2过滤
我一直在干预REST API,并且对此深信不疑:如何过滤cat1和cat2中的帖子? 现在,?categories[]=45&categories[]=50返回类别ID 45或50的退货-如何获得45和50的帖子? 提前致谢。

1
用wordpress运行silex或slim
我正在WordPress上运行主题。在这个主题中,我正在进行一些AJAX调用,希望能对此有所回应。(http://example.com/capis/v0/packages/) 为了提供上述HTTP调用,我将silex用作http服务器。 index.php <?php require_once __DIR__ . '/vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Silex\Application; $app = new Silex\Application(); $app->POST('/capis/v0/packages/', function(Application $app, Request $request) { # logic return new Response('HELLO'); }); $app->run(); 我正在使用php在8080端口上运行服务器,该服务器正在为ajax调用提供数据。 php -S localhost:8080 -t web web/index.php 现在,我只想通过使用WordPress服务这些Ajax调用。我不想运行特定的php服务器。
10 plugins  rest-api 

3
从REST API检索到的随机数无效,并且与wp_localize_script中生成的随机数不同
对于那些来自Google的应用程序:除非您真的知道自己在做什么,否则您可能不应该从REST API中获取现时信息。REST API的基于Cookie的身份验证仅适用于插件和主题。对于单页应用程序,您可能应该使用OAuth。 之所以存在这个问题,是因为文档尚不清楚/尚不清楚在构建单页应用程序时应如何进行真正的身份验证,JWT并不真正适用于Web应用程序,并且比基于cookie的身份验证更难以实现OAuth。 该手册中有一个有关Backbone JavaScript客户端如何处理随机数的示例,如果我按照该示例进行操作,则会得到一个随机数,该内置数可以被/ wp / v2 / posts等端点接受。 \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); 但是,使用Backbone和主题都是不可能的,因此我编写了以下插件: <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', function () { $user = get_current_user_id(); register_rest_route('nonce/v1', 'get', [ 'methods' => 'GET', 'callback' => function () use ($user) { return …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.