【问题标题】:Wordpress API - link to full post details from list of postsWordpress API - 链接到帖子列表中的完整帖子详细信息
【发布时间】:2016-08-24 10:46:48
【问题描述】:

我已将 Wordpress API 安装到我们公司的网站上,以便我们可以从中检索数据以显示在新的公司网站上。关于抓取和显示初始数据,一切正常(来自原始网站的特定类别的帖子到新网站的特定页面上)。

这是针对在酒吧/餐厅发生的现有网站上的“最新消息”页面上输入的事件。新站点完全专注于活动,并且无需在我们认为最好使用 API 的两个站点上添加/修改活动。

要检索事件的完整列表(有效),我使用:

$response = wp_remote_get( 'http://restuarantdomain.com/wp-json/wp/v2/posts?filter[category_name]=live-events&per_page=50' );

我也知道要显示我需要使用的单个帖子:

$response = wp_remote_get( 'http://restaurantdomain.com/wp-json/wp/v2/posts?filter[name]=event_name );

我不知道该怎么做是在新网站上创建一个“友好”网址,然后该网址将转到调用该函数以获取个人帖子详细信息的页面。

例如,我希望 url http://eventdomain.com/whats-on/event-name(在通过上面的第一个 API 调用获取的事件帖子列表中)转到页面 What's On 并且在该页面上使用来自 url 的事件名称作为参数上面的第二个 API 调用。但是由于 url 的格式不存在,Wordpress 只是查找类别和帖子名称,所以我只得到一个 404。

我错过了什么?

【问题讨论】:

  • 您可以通过更改 home url 和 admin url 将原始数据库的副本用于新项目。试试这个。
  • 谢谢,但我不想使用原始数据库的副本,否则我会这样做,这不是我使用 API 的目的。这是一个不同的网站,用于业务的另一部分,其中一个是相同的,因此每次有新帖子时都不需要输入两次,我们只需在一个网站上添加或更新它。
  • 我认为它很难管理。唯一的方法是,您应该通过 wp_post 和 wp_postmeta 的 mysql 连接查询从原始网站数据库中检索帖子数据。在这里,您已经手动完成了所有操作,例如删除、添加帖子等@emdav43。按照你的要求,这东西只有一种方式。如果您不满意,请编辑您的问题并解释清楚亲爱的
  • 对不起,但我认为你不明白我想要做什么(也许我解释得不够清楚,但我不知道该怎么做)

标签: php wordpress wordpress-json-api


【解决方案1】:

您必须创建自定义端点。

例如,如果您想过滤特定类别中的所有帖子,您应该这样做

function my_cat_func( $data ) {
    $posts = get_posts( array(
        'cat' => $data['id'],
    ) );

    if ( empty( $posts ) ) {
        return null;
    }

    return $posts[0]->post_title;
}

那么你必须添加一个动作来注册你的端点调用

add_action( 'rest_api_init', function () {
    register_rest_route( 'myplugin/v2', '/categoy/(?P<id>\d+)', array(
        'methods' => 'GET',
        'callback' => 'my_cat_func',
    ) );
} );

然后你会得到这样的东西

http://example.com/wp-json/myplugin/v2/categoy/(?P<id>\d+)

为了获得更多信息和更好的理解,我建议你阅读这个参考: http://v2.wp-api.org/extending/adding/

这篇文章还可以给你更多例子:https://webdevstudios.com/2015/07/09/creating-simple-json-endpoint-wordpress/https://deliciousbrains.com/wp-rest-api-customizing-endpoints-adding-new-ones/

注意:我在运行中编写了这段代码,应该需要更多的努力才能工作。

【讨论】:

  • 感谢您的帮助,Majid,我想我明白了,但明天当我的大脑不那么疲倦时,我会通过您建议的链接进一步阅读。
  • 如果您对此进行了研究并发现它对您有用,请在此处发表评论并接受此答案,希望以后对其他人有所帮助。
猜你喜欢
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2022-06-20
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
相关资源
最近更新 更多