I am building a mobile with Google Flutter Framework and using Wordpress as the backend for my app. I want to fetch Wordpress Custom Post Type data in JSON format in Flutter with Chopper Retrofit of Flutter API.

Can anyone help me to build a sample code so I can get started with ease? I worked with this ( Flutter Wordpress ) but I don't know how to use Custom Post Types with this.


Or if anyone knows how to use this and fetch custom post types then it would be more easy for me.

Please Help! Thank you!

Solution 1: Nikola Kirincic

Looking at the package you want to use to build a mobile app, there is no example and solution for custom types, (https://github.com/dreamsoftin/flutter_wordpress), but you could fork it, and extend it for specific custom post types. I will show you an example of how to do this (custom fields are excluded):

In flutter_wordpress/lib/constants.dart

add after line #10 const URL_POSTS = '$URL_WP_BASE/posts';

the line for an endpoint for your custom post. Say you have custom post book, you will add an endpoint books:

const URL_BOOKS = '$URL_WP_BASE/books';

see explanation about this and how to enable REST API for the custom post type here:


Then in the flutter_wordpress/lib/requests/ folder, find, clone and rename file:

params_post_list.dart to params_book_list.dart

And rename here class ParamsPostList to class ParamsBookList

in folder flutter_wordpress/lib/schemas/ find

post.dart copy and rename to book.dart

And rename here class Post to class Book

Then in the file flutter_wordpress/lib/flutter_wordpress.dart:

find line import 'schemas/post.dart'; and after that add line import 'schemas/book.dart';

find line export 'requests/params_post_list.dart'; and after that add line export 'requests/params_book_list.dart';

find line export 'schemas/post.dart'; and after that add line export 'schemas/book.dart';

Then find functions

async.Future<List<Post>> fetchPosts()

Future<Post> _postBuilder()

async.Future<Post> createPost({@required Post post})

copy these functions rename it and replace Post with Book (case sensitive)

note: find URL_POSTS in copied functions and rename to URL_BOOKS