当前位置: 首页 > 知识库问答 >
问题:

在WordPress Rest API中添加自定义endpoint

沈华皓
2023-03-14

我想在WordPress Rest API中添加自定义endpoint。我能够通过创建简单的插件来获取此代码的帖子ID,标题,内容,slug,类别和featured_image。我在代码中获得了类别ID。我想要类别名称,我试图通过get_cat_name来执行此操作,但没有理解它。如何通过自定义终结点获取类别名称,作者姓名和作者个人资料图像。我也是wordpress的初学者。我参考了文档,但不明白该怎么做。将其写w_posts为类别名称的函数

$data[$i]['catname']= get_cat_name($data[$i]['categories']);
<?php
/** Plugin Name : Custom API
 * Plugin URI : https://google.com
 * Decription : Crushing It
 * Version : 1.0
 * Author: Shahryar
 * Author URI: https://google.com
 */
/** Plugin Name: Custom API... */
function w_posts(){
   $args = [
       'numberposts'=> 99999,
       'post_type' => 'post'
   ];
   $posts = get_posts($args);

   $data = [];
   $i = 0;
   foreach($posts as $post) {
    $data[$i]['id'] = $post->ID;
    $data[$i]['title'] = $post->post_title;
    $data[$i]['content'] = $post->post_content;
    $data[$i]['slug'] = $post->post_name;
    $data[$i]['categories'] = $post->post_category;

    $data[$i]['featured_image']['thumbnail'] = get_the_post_thumbnail_url($post->ID, 'thumbnail');
    $data[$i]['featured_image']['medium'] = get_the_post_thumbnail_url($post->ID, 'medium');
    $data[$i]['featured_image']['large'] = get_the_post_thumbnail_url($post->ID, 'large');

    $i++;
}

return $data;
}
function my_awesome_func( $data ) {
    $posts = get_posts( array(
      'author' => $data['id'],
    ) );

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

    return $posts[0]->post_title;
  }
  function my_awesome_function( $data ) {
    $posts = get_posts( array(
      'author' => $data['id'],
    ) );

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

    return $posts[0]->post_title;
  }
function w_post( $slug ) {
    $args = [
        'name' => $slug['slug'],
        'post_type' => 'post'
    ];

    $post = get_posts($args);


    $data['id'] = $post[0]->ID;
    $data['title'] = $post[0]->post_title;
    $data['content'] = $post[0]->post_content;
    $data['slug'] = $post[0]->post_name;
    $data['categories'] = $post[0]->post_category;
    $data['featured_image']['thumbnail'] = get_the_post_thumbnail_url($post[0]->ID, 'thumbnail');
    $data['featured_image']['medium'] = get_the_post_thumbnail_url($post[0]->ID, 'medium');
    $data['featured_image']['large'] = get_the_post_thumbnail_url($post[0]->ID, 'large');

    return $data;
}
add_action('rest_api_init',function(){
    register_rest_route('w/v1','posts',[
        'methods'=> 'GET',
        'callback'=>'w_posts',
    ]);
    register_rest_route( 'w/v1', 'posts/(?P<slug>[a-zA-Z0-9-]+)', array(
        'methods' => 'GET',
        'callback' => 'w_post',
    ) );

}); 

共有1个答案

江阳冰
2023-03-14

您正在获取类别ID,然后您可以使用它的ID获取类别名称,例如:

get_the_category_by_ID( $cat_ID )

要获取作者名称和图像,您可以执行以下操作:

$author_id=$post->post_author; //get author id
//get author image URL by author id
$author_img_url = the_author_meta( 'avatar' , $author_id ); 
//get author name by author id
the_author_meta( 'user_nicename' , $author_id );
 类似资料:
  • 是否有一个时间格式来指定这样的日期序列到轴在D3和v4?

  • 虽然Blockly定义了许多标准块,但大多数应用程序需要定义和实现至少一些域相关块。 块由三个部分组成: 块定义对象:定义块的外观和行为,包括文本,颜色,字段和连接。 工具箱参考:工具箱XML中对块类型的引用,因此用户可以将其添加到工作区。 生成器函数:生成此块的代码字符串。它是用JavaScript编写的,即使目标语言不是JavaScript,甚至是用于Android端的Blockly。 块定义

  • 本文向大家介绍asp.net-mvc 在Mvc中添加自定义路由,包括了asp.net-mvc 在Mvc中添加自定义路由的使用技巧和注意事项,需要的朋友参考一下 示例 用户可以添加自定义路由,将URL映射到控制器中的特定操作。这用于搜索引擎优化目的,并使URL可读。            

  • 问题内容: 我想制作一个简单的表,其中包含一行自定义按钮。当按下按钮时,我想弹出一个“警告”框。我已经阅读了一些关于此的文章,我不明白为什么我的代码无法正常工作。绘制了按钮,但按下按钮无效。 我在这里描述了三种尝试。 版本1。单击按钮不会触发: HTML代码: 编辑8/2/12-自从我的原始文章以来,我已经学到了一些东西,在这里我描述了另外两次尝试。 版本2:我使用onCellSelect。这行得

  • 我想在向url发送请求时添加假用户代理。但它并没有添加假useragent,而是使用默认的useragent。

  • 我正在使用侦探2.0.x,我想添加我自己的跟踪ID,除了它自己的。 我正在浏览给定的链接 https://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.0.0.RC2/single/spring-cloud-sleuth.html#_propagation 我想修改跟踪如下代码:-公共静态最终字符串TAG _ NAME = "