我正在研究 Wp Rest API。我想从 WordPress 网站检索帖子,结果显示在另一个 PHP 网站中。我创建了一个休息网址“ http://sitename.com/wp-json/wp/v2/posts ”这样来获取帖子。此请求以 html 格式显示数据,但不以 JSON 格式显示数据。我在 PostMan 应用程序中测试了两个不同的 URL。如何从 WordPress 站点将 API 响应转换为 JSON 格式而不是 html。
这是我的 URL 数据
这是第三方 URL 数据
我正在尝试使用 REST API 显示帖子,并且我想根据它们在管理菜单中的位置按菜单顺序显示它们。
我安装了一个插件,允许我将帖子移动到管理员中的任何位置。我知道使用 WordPress 以正常方式查询帖子有一个 orderby: menu_order 选项,它可以完成我正在寻找的操作,但我无法使用 REST API 弄清楚它。
我的 REST API 如下所示:
https://example.com/wp-json/wp/v2/qd_leadership?_embed&per_page=100&orderby=menu_order
Run Code Online (Sandbox Code Playgroud)
所以我已经尝试过了,但这不起作用。它说 menu_order 不是一个选项。我还在这里看到了一个帖子:
按 WordPress (REST) 帖子在管理员中出现的顺序查询它们
那有一个类似的问题。该帖子的唯一答案是没有任何 orderby 参数,并且应该按菜单顺序显示它们,但这对我不起作用。所以我很困惑如何按菜单顺序从 REST API 中订购帖子?
注册功能必须去哪里?( register_rest_route())
有任何文件可以澄清这一点吗?
官方文档中没有提到: https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/
同样,端点函数必须存储在哪里?注册函数只是命名它,而不指定它的路径。
例如,你可以这样做:
register_rest_route) 位于主插件文件中(例如 \wp-content\plugins\example\example.php)如果是这样,怎么办?
以下链接似乎尝试执行此操作,但未指定这些属性(例如 \wp-content\plugins\example\example.php)
php wordpress routes wordpress-rest-api wordpress-plugin-creation
我有一个问题register_meta(),
我正在尝试为我的自定义帖子类型创建数组元并将其添加到 REST API,但什么也没有,这是我的代码:
function thefuturmeta_register_portfolio_meta() {
register_meta( 'post', '_thefuturmeta_port_add_gallery', array(
'object_subtype' => '_themename_portfolio',
'show_in_rest' => true,
'type' => 'array',
'single' => true,
'sanitize_callback' => '',
'auth_callback' => function() {
return current_user_can( 'edit_posts' );
}
) );
}
add_action('init', 'thefuturmeta_register_portfolio_meta');
Run Code Online (Sandbox Code Playgroud)
我在 REST API 中看不到这个元数据。如果我将元类型更改为字符串或布尔值或数字,它将显示。
我究竟做错了什么?
提前致谢。
我使用 CPT 创建了一个UserQuestion包含几个字段的帖子类型,例如ip_data. 我希望能够通过 API 创建这篇文章。所以我研究了 WP REST API 。
然而,该 API 提供/v2/user_question:
{
"title" : "test2",
"slug": "user_question",
"status": "publish",
"post_type": "user_question",
"meta": {
"ip" : "1111",
"question": "test question",
"answer": "yes, the answer"
}
}
Run Code Online (Sandbox Code Playgroud)
帖子已创建,但未更新自定义字段数据。
我该如何提出要求?
我已经在function.php文件中创建了自定义帖子,对我来说很好。当我通过WordPress REST API调用自定义帖子数据时,它向我显示了浏览器中的错误。
以下是在浏览器中显示给我的错误。
code "rest_no_route"
message "No route was found matching the URL and request method"
data
status 404
Run Code Online (Sandbox Code Playgroud)
但是rest API适用于WordPress中存在的默认帖子。
我已经unset($data->data['field_name']) 从 json 输出中删除了不需要的数据。为此,我使用 wordpress 过滤器rest_prepare_。
但是我们如何从 JSON 输出中删除 _links 对象呢?
我想从我的应用程序创建一个请求。(iOS 和 Android - 使用 Xamarin 编码)。
说明:
该请求应触发 WordPress action=lostpassword。- 用户收到一封电子邮件,要求在浏览器中重置密码。
或者
用户将能够设置新密码。WordPress 发送一个电子邮件链接 - 用户必须在其中验证他是否更改了密码。是否有机会通过向 REST API 发出请求来执行此操作。
也许有类似的想法?
我已经尝试过:
wp-login.php?action=lostpasswordbody{ "redirect_to": "", "user_login": "name@provider.de", "wp-submit": "Neues+Passwort" }
的端点https://example.com/wp-json/wp/v2/pages/123返回 HTML 和 JSON 格式的组合,例如:
<div class="my-class">HTML Content</div>
{ "id" : 123, ... }
Run Code Online (Sandbox Code Playgroud)
有一个摘录过滤器用于functions.php设置输出的 HTML,在这一行中:
<div class="my-class">HTML Content</div>
{ "id" : 123, ... }
Run Code Online (Sandbox Code Playgroud)
如何防止此类过滤器干扰 JSON 响应?
我正在尝试创建一个侧边栏插件,用于存储要在前端使用的帖子元。在不涉及不必要的细节的情况下,我需要将所有数据存储为 1 个元条目,而不是每个帖子的许多行。这是我到目前为止所拥有的:
// ds-jars.js
const pluginContent = (props) => {
const productData = () => {
const categoryId = createElement( PanelRow, null,
createElement(TextControl, {
label: "Category Name",
value: props.category_id,
onChange: (content) => {
props.set_category_id(content)
},
})
)
const serialId = createElement( PanelRow, null,
createElement( TextControl, {
label: "Serial Number",
value: props.serial_id,
onChange: (content) => {
props.set_serial_id(content)
}
})
)
const productId = createElement( PanelRow, null,
createElement( TextControl, {
label: "Product ID",
value: props.product_id,
onChange: (content) => { …Run Code Online (Sandbox Code Playgroud) javascript wordpress serialization wordpress-rest-api wordpress-gutenberg