”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用wp-api-angular连接Angular与WordPress API

使用wp-api-angular连接Angular与WordPress API

发布于2025-04-16
浏览:775

本教程使用 wp-api angular 库将Angular 2应用程序与WordPress REST API连接。 该图书馆支持主要的WP资源(用户,帖子,评论,媒体,分类法)。我们将构建展示其易用性的功能:JWT身份验证,用户和发布列表,以及Post Crud(创建,读取,更新,删除)操作。 完整的源代码在GitHub上。 虽然本教程使用Angular 5,但这些概念适用于Angular 2。

[2 [2

Connecting Angular and the WordPress API with wp-api-angular 使用

wp-api-angular

角度实现:JWT身份验证,用户列表和邮政处理。

在Angular中使用可观察的和承诺的异步API处理。
  • 访问完整的WordPress API(用户,帖子,注释,媒体)以增强角度应用程序。 [2 本教程使用一个自托管的WordPress实例。 启用永久链接(有关指令,请参见WordPress codex; nginx,添加
  • )。 安装JWT身份验证插件以进行安全API访问。
  • [2
  • 创建一个新的Angular应用程序:
  • NG NEW WP-API
  • 安装库:
  • CD WP-API && NPM安装WP-API-ANGULAR--SAVE- -SAVE
  • [2

})) ],, // ... })) 导出函数wpapiloaderfactory(http:http){ 返回新的Wpapistaticloader(http,'http:// your_domain_here/wp-json/wp/v2/',''); }

用WordPress域替换

app.component.ts (包括 httpclientmodule )。 [2

添加一个变量添加到 app.component.ts

    创建一个
  1. authentication ng生成组件authentication )。
  2. authentication.component.ts
  3. ,创建一个 auth()
  4. [2 this.http.post('http:// your_domain/wp-json/jwt-auth/v1/token',{ 用户名:this.user.login, 密码:this.user.password })。订阅(data => { if(data ['token']){ this.token = data ['token']; this.tokenchange.emit(this.token); } }); }
import { Http } from '@angular/http';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { WpApiModule, WpApiLoader, WpApiStaticLoader } from 'wp-api-angular';

@NgModule({
  // ...
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    WpApiModule.forRoot({
      provide: WpApiLoader,
      useFactory: WpApiLoaderFactory,
      deps: [Http]
    })
  ],
  // ...
})

export function WpApiLoaderFactory(http: Http) {
  return new WpApiStaticLoader(http, 'http://YOUR_DOMAIN_HERE/wp-json/wp/v2/', '');
}
列表用户:[2

创建一个 user-list ng生成component user-list )。 In user-list.component.ts, inject WpApiUsers and use getList()

to fetch users.

[2

创建帖子:
    创建一个
  1. post-new 列表帖子:创建一个 post-list
  2. component。使用
  3. wpapiposts.getlist()来获取帖子。 删除帖子:将删除按钮添加到 post-list
  4. 。使用JWT授权标题。
  5. 创建一个 post-edit 结论:
本教程为将Angular与WordPress REST API集成为基础。   wp-api angular 库简化了此过程,从而可以在角度应用程序中有效地管理WordPress内容。  记住要安全地处理身份验证并有效地管理异步操作。  提供的代码片段和解释应帮助您与WordPress API建立更复杂的交互。
最新教程 更多>
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 考虑文档中给出的示例:这是内部发生的事情: 现在在3月3日添加另一个月,因为2月在2001年只有2...
    编程 发布于2025-04-21
  • 在JavaScript中如何获取实际渲染的字体,当CSS字体属性未定义时?
    在JavaScript中如何获取实际渲染的字体,当CSS字体属性未定义时?
    Accessing Actual Rendered Font when Undefined in CSSWhen accessing the font properties of an element, the JavaScript object.style.fontFamily and objec...
    编程 发布于2025-04-21
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 的 ...
    编程 发布于2025-04-21
  • Java反射能否访问私有字段?
    Java反射能否访问私有字段?
    通过Java java的封装机制使开发人员限制访问私人私人的私人私人访问权限。但是,可以使用Java的反射API绕过这些限制。本文探讨了是否以及如何通过反射访问私有字段。访问私有字段Obtain the Field Object: Invoke the getDeclaredField() m...
    编程 发布于2025-04-21
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, attributeError:SomeClass实...
    编程 发布于2025-04-21
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-04-21
  • Bootstrap 3列重排:巧用`col-lg-push`和`col-lg-pull`
    Bootstrap 3列重排:巧用`col-lg-push`和`col-lg-pull`
    在Twitter bootstrap 3 To customize the column order, you need to:Define the order in HTML: Change the order of the columns in your HTML markup.例如,如果您希...
    编程 发布于2025-04-21
  • SQL中TOP、WHERE和ORDER BY子句的处理顺序详解
    SQL中TOP、WHERE和ORDER BY子句的处理顺序详解
    sql语句的执行顺序涉及三个条款:top,post,where和order。这些子句的执行顺序由选择语句文档中指定的逻辑处理顺序确定。 其中srause:订单订单: [最后,按子句基于客户薪金以降序订单中的结果设置。只有前5个结果将被返回。注意:很重要的是要注意,实际的物理执行顺序可能会根据...
    编程 发布于2025-04-21
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-04-21
  • MySQL中如何正确拼接字符串?
    MySQL中如何正确拼接字符串?
    在mysql中的constenation:揭示contat function 因此,在mysql中用于串联字符串的正确语法为: contat(first_name,last_name''''',''','''&...
    编程 发布于2025-04-21
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 为什么在grid-template-colms中具有100%的显示器,当位置设置为设置的位置时,grid-template-colly修复了?问题: 考虑以下CSS和html: class =“ snippet-code”> g...
    编程 发布于2025-04-21
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-04-21
  • 在循环中声明变量是好编程实践吗?
    在循环中声明变量是好编程实践吗?
    Declaring Variables Inside Loops: Good Practice or Bad Practice?IntroductionDeclaring variables within loops has been a subject of debate among progra...
    编程 发布于2025-04-21
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制,控制元素的滚动行为对于确保用户体验和可访问性是必不可少的。一种这样的方案涉及限制动态大小的父元素中元素的滚动范围。问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期...
    编程 发布于2025-04-21
  • Python中何时用"try"而非"if"检测变量值?
    Python中何时用"try"而非"if"检测变量值?
    使用“ try“ vs.” if”来测试python 在python中的变量值,在某些情况下,您可能需要在处理之前检查变量是否具有值。在使用“如果”或“ try”构建体之间决定。“ if” constructs 结果= function() 如果结果: 对于结果: #处理项...
    编程 发布于2025-04-21

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3