Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Flutter WordPress API

License

NotificationsYou must be signed in to change notification settings

dreamsoftin/flutter_wordpress

Repository files navigation

pub.dev

This library usesWordPress REST API V2 to provide a way for your application to interact with your WordPress website.

Tutorial - by Ritesh Sharma

Screenshots

Requirements

For authentication and usage of administrator level REST APIs, you need to use either of the two popular authentication plugins in your WordPress site:

  1. Application Passwords
  2. JWT Authentication for WP REST API(recommended)

Getting Started

1. Import library

First:

Find your pubspec.yaml in the root of your project and add flutter_wordpress: ^0.2.0 under dependencies:

Second:

import'package:flutter_wordpress/flutter_wordpress.dart'as wp;

2. Instantiate WordPress class

wp.WordPress wordPress;// adminName and adminKey is needed only for admin level APIswordPress= wp.WordPress(  baseUrl:'http://localhost',  authenticator: wp.WordPressAuthenticator.JWT,  adminName:'',  adminKey:'',);

3. Authenticate User

Future<wp.User> response= wordPress.authenticateUser(  username:'ChiefEditor',  password:'chiefeditor@123',);response.then((user) {createPost(user);}).catchError((err) {print('Failed to fetch user: $err');});

4. Fetch Posts

Future<List<wp.Post>> posts= wordPress.fetchPosts(  postParams: wp.ParamsPostList(    context: wp.WordPressContext.view,    pageNum:1,    perPage:20,    order: wp.Order.desc,    orderBy: wp.PostOrderBy.date,  ),  fetchAuthor:true,  fetchFeaturedMedia:true,  fetchComments:true,  postType:'post');

5. Fetch Users

Future<List<wp.User>> users= wordPress.fetchUsers(  params: wp.ParamsUserList(    context: wp.WordPressContext.view,    pageNum:1,    perPage:30,    order: wp.Order.asc,    orderBy: wp.UsersOrderBy.name,    roles: ['subscriber'],  ),);

6. Fetch Comments

Future<List<wp.Comment>> comments= wordPress.fetchComments(  params: wp.ParamsCommentList(    context: wp.WordPressContext.view,    pageNum:1,    perPage:30,    includePostIDs: [1],  ),);

7. Create User

Future<void>createUser({@requiredString email,@requiredString username,@requiredString password,@requiredList<String> roles})async {await widget.wordPress.createUser(      user: wp.User(        email: email,        password: password,        username: username,        roles: roles      )    ).then((p) {print('User created successfully ${p}');    }).catchError((err) {print('Failed to create user: $err');    });  }

8. Create Post

voidcreatePost({@required wp.User user}) {final post= widget.wordPress.createPost(      post:new wp.Post(        title:'First post as a Chief Editor',        content:'Blah! blah! blah!',        excerpt:'Discussion about blah!',        authorID: user.id,        commentStatus: wp.PostCommentStatus.open,        pingStatus: wp.PostPingStatus.closed,        status: wp.PostPageStatus.publish,        format: wp.PostFormat.standard,        sticky:true,      ),    );    post.then((p) {print('Post created successfully with ID: ${p.id}');    }).catchError((err) {print('Failed to create post: $err');    });  }

9. create Comment

voidcreateComment({@requiredint userId,@requiredint postId}) {final comment= widget.wordPress.createComment(      comment:new wp.Comment(        author: userId,        post: postId,        content:"First!",        parent:0,      ),    );    comment.then((c) {print('Comment successfully posted with ID: ${c.id}');    }).catchError((err) {print('Failed to comment: $err');    });  }

10. Update Comment

Future<void>updateComment({@requiredint id,@requiredint postId,@required wp.User user})async {await widget.wordPress.updateComment(      comment:new wp.Comment(        content:"Comment Updated2!",        author: user.id,        post: postId,      ),      id: id,    ).then((c) {print('Comment updated successfully "$c"');    }).catchError((err) {print('Failed to update Comment: $err');    });  }

11. Update Post

Future<void>updatePost({@requiredint id,@requiredint userId})async {await widget.wordPress.updatePost(      post:new wp.Post(        title:'First post as a Chief Editor',        content:'Blah! blah! blah!',        excerpt:'Discussion about blah!',        authorID: userId,        commentStatus: wp.PostCommentStatus.open,        pingStatus: wp.PostPingStatus.closed,        status: wp.PostPageStatus.publish,        format: wp.PostFormat.standard,        sticky:true,      ),      id: id,//    ).then((p) {print('Post updated successfully with ID ${p}');    }).catchError((err) {print('Failed to update post: $err');    });  }

12. Update User

Future<void>updateUser({@requiredint id,@requiredString username,@requiredString email})async {await widget.wordPress.updateUser(      user:new wp.User(        description:"This is description for this user",        username: username,        id: id,        email: email      ),      id: id,    ).then((u) {print('User updated successfully $u');    }).catchError((err) {print('Failed to update User: $err');    });  }

13. Delete Comment

Future<void>deleteComment({@requiredint id})async {await widget.wordPress.deleteComment(id: id).then((c) {print('Comment Deleted successfully: $c');    }).catchError((err) {print('Failed to Delete comment: $err');    });  }

14. Delete Post

Future<void>deletePost({@requiredint id})async {await widget.wordPress.deletePost(id: id).then((p) {print('Post Deleted successfully: $p');    }).catchError((err) {print('Failed to Delete post: $err');    });  }

15. Delete User

Future<void>deleteUser({@requiredint id,@requiredint reassign})async {await widget.wordPress.deleteUser(id: id, reassign: reassign).then((u) {print('User Deleted successfully: $u');    }).catchError((err) {print('Failed to Delete user: $err');    });  }

16. Upload Media

uploadMedia(File image)async {var media=await wordPress.uploadMedia(image).then((m) {print('Media uploaded successfully: $m');  }).catchError((err) {print('Failed to upload Media: $err');  });int mediaID= media['id'];  }

Future Work

  1. Implementing OAuth 2.0 authentication.

Contributors


[8]ページ先頭

©2009-2025 Movatter.jp