【问题标题】:How to create a wordpress plugin that will create and update custom post types from an external json feed如何创建一个 wordpress 插件,该插件将从外部 json 提要创建和更新自定义帖子类型
【发布时间】:2017-02-14 17:25:18
【问题描述】:

我创建了两种自定义帖子类型 - 季节和比赛 我想做的是使用来自外部 api 的数据来制作一个 wordpress 插件来创建和更新这些帖子,我已经做了几次尝试,但到目前为止都失败了让这个工作的 api 样本是:

 {"id":15,"startDate":"14-06-2014","endDate":"23-07-2015","competition":{"id":43,"name":"Champions League"},"sponsor":{"id":12,"name":"UEFA","description":"Uefa"}}``

以及目前插件的代码:

function add_posts()
{

 $season_request    = 'https://somedomain/api/info';

$args = array(
'headers' => array(
    'Authorization' => 'Basic ' . base64_encode( user . ':' . password)
)
);
$season_response = wp_remote_get( $season_request, $args );
 $season_data = json_decode($season_response['body']);

if(! $season_data)
return false;

$query = array(
  'meta_query' => array(

    array(
         'key' =>'season_id',
         'value' => $season_data->id
    )
),

'post_type' => 'seasons',
'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit'),
  'posts_per_page' => 1
 );

   $season = get_posts($query);
   $season_id = '';
   if($season)
   $season_id = $season[0] -> id;

   $season_post = array
  (
    'ID' => $season_id,
    'post_title' => $season_data -> startDate . endDate . 'test',
    'post_type' => 'seasons',
    'post_author' => 1,
    'post_status' => ($season) ? $season[0] -> post_status : 'publish'

   );

   $season_id = wp_insert_post($season_post);



  }

我对 php 比较陌生(不是编码),所以它可能是我看不到的非常明显的东西。我认为这将是一些详细的文档,但如果有的话,它似乎对我隐藏得很好。任何正确方向的帮助或指示将不胜感激。 谢谢

【问题讨论】:

  • 您的实际问题是什么?
  • 如何创建一个 wordpress 插件,从外部 json 提要创建和更新自定义帖子类型?
  • 好吧,如果您在这段代码中没有特定的编程问题,只是希望其他人为您呈现一些完成的代码 - StackOverflow 不是正确的地方。
  • 我不希望其他人向我展示完成的代码 - 我希望有人能够告诉我哪里出了问题,并提供一些建议,告诉我如何以正确的方式解决这个问题看看我在我的代码 sn-p 下所说的话我会认为这很清楚......我的印象是当你向更有经验的人寻求帮助时,你可以在哪里寻求指导 - 你在哪里建议如果不是 stackoverflow,学习新开发技能的人会去寻求帮助吗?
  • 我不想显得粗鲁。问题只是 SO 更多的是用于诸如“在这段代码被剪断,我尝试了这个和那个,但我遇到了以下错误/我无法实现这个确切的功能”而不是“我编码执行 XY 的插件/库/应用程序”。如果除了“完成前只有 10000 行,请提供帮助”以外的特定问题,那绝对可以。但从你的措辞中并不清楚,因为它听起来更像是我提供的坏例子之一。有无数的编码论坛可能更适合。

标签: php json wordpress custom-post-type


【解决方案1】:

调用外部api的正确方法如下:

$data_request    = 'https://yoururlforapihere/api/data';
$username = 'user';
$password = 'password';

$headers = array( 'Authorization' => 'Basic ' . base64_encode("$username:$password" ) );
$data_response = wp_remote_get( $data_request, array( 'headers' =>$headers, 'sslverify' => false));

一旦数据正确输入,其余的就变得更加简单了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多