繁体   English   中英

从哪里开始扩展WP-API

[英]Where to start with extending WP-API

我正在尝试使用和扩展 WordPress 的WP-API

现在,我可能只是愚蠢,但即使我一遍又一遍地阅读了上面的链接,但我真的不知道从哪里开始。 而且我不是在讲代码,而是讲基础知识,我应该在哪里放置代码? 在插件中? 如果是这样,我需要包括什么才能使其正常工作? 还是足以扩展课程?

抱歉,但是我只是发现页面上的信息太少了...还是我完全错过了一个上下完美构造的示例?

它在GitHub上 谢谢你的帮助!

我不知道文档是否过时,但是扩展WP-API非常简单。 您需要先编写一个插件

在插件中,您可以在其中注册脚本和样式等钩子(functions.php,bootstrap.php),并添加一个新钩子来注册路由。

add_filter( 'json_endpoints', array( $this, 'registerRoutes' ) );

public function registerRoutes($routes){
        $editorService = $this->container["editorService"];

        $routes['/newsletters'] = array(
            array( array( $editorService, 'create'), \WP_JSON_Server::CREATABLE | \WP_JSON_Server::ACCEPT_JSON ),
        );
        $routes['/newsletters/(?P<id>\d+)'] = array(
            array( array( $editorService, 'get'), \WP_JSON_Server::READABLE )
        );
        return $routes;
    }

如果您阅读文档,将会看到新闻通讯是实体。 在此示例中,我注入服务并在路由中调用它。 很可能您使用了不同的方法,如果在这一点上遇到困难,则必须弄清楚如何构造插件,适用的模式,编写或编写自己的框架等。

如果是这种情况,请检查此框架,这是MVC的一种很好的方法https://github.com/iandunn/WordPress-Plugin-Skeleton

如果要在同一类中调用函数,则可以执行以下操作:

public function registerRoutes(){
    $routes['/newsletters'] = array(
        array( array( $this, 'createNewsletter'), \WP_JSON_Server::CREATABLE | \WP_JSON_Server::ACCEPT_JSON )
    );
}
public function createNewsletter() {
    $wpdb->prepare(); // etc etc
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM