{"id":18123306,"url":"https://github.com/mhadaily/wp-api-ember","last_synced_at":"2026-05-09T09:51:48.549Z","repository":{"id":74805267,"uuid":"83939805","full_name":"mhadaily/wp-api-ember","owner":"mhadaily","description":"Wordpress REST API + Ember JS","archived":false,"fork":false,"pushed_at":"2017-06-21T18:24:25.000Z","size":80,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-12T18:50:01.620Z","etag":null,"topics":["ember","emberjs","rest-api","wordpress","wp"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhadaily.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-05T02:44:50.000Z","updated_at":"2018-02-27T21:45:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"523a81f4-e31e-4a75-995d-d9d13b3ca604","html_url":"https://github.com/mhadaily/wp-api-ember","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhadaily%2Fwp-api-ember","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhadaily%2Fwp-api-ember/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhadaily%2Fwp-api-ember/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhadaily%2Fwp-api-ember/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhadaily","download_url":"https://codeload.github.com/mhadaily/wp-api-ember/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247485253,"owners_count":20946398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ember","emberjs","rest-api","wordpress","wp"],"created_at":"2024-11-01T07:09:11.420Z","updated_at":"2026-05-09T09:51:48.438Z","avatar_url":"https://github.com/mhadaily.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wordpress REST Api and Ember.js Boilerplate\n\nThis repository will help you to quickly setup a project to get data from \nWordpress website via wp-json/v2 api plugins. \n\n## Project Structure\n````\n--app\n  |---adapter\n     |---application.js //  handle connection to wordpress\n  |---serializer\n     |---application.js // serializer data as RESTAPI Adapter expects\n  |----route \n     |---pages.js  //get all pages based on pagination number\n     |---posts.js  //get all posts based on pagination number\n  |----model\n     |---page.js\n     |---post.js\n  |----template\n     |---pages.hbs\n     |---posts.hbs\n---config\n  |---environment.js // add wp-host here\n````\n### CUSTOM POST TYPE:\nSince the basic of WP is in place you it's very easy to add your custom post type \nas a model. You may or may not need to have different serializer. However, The concept of\n creating model or serializer even different adapter if needed for custom post type\n is as exactly as what I have done for pages and post.\n \n ````php\n /**\n  * Register a book post type, with REST API support\n  *\n  * Based on example at: https://codex.wordpress.org/Function_Reference/register_post_type\n  */\n add_action( 'init', 'my_book_cpt' );\n function my_book_cpt() {\n     $args = array(\n       'public'       =\u003e true,\n       'show_in_rest' =\u003e true,\n       'label'        =\u003e 'Books'\n     );\n     register_post_type( 'book', $args );\n }\n ````\nFull example of registering Custom post type to be appeared in REST Api.\n \n ````php\n /**\n  * Register a book post type, with REST API support\n  *\n  * Based on example at: https://codex.wordpress.org/Function_Reference/register_post_type\n  */\n add_action( 'init', 'my_book_cpt' );\n function my_book_cpt() {\n   $labels = array(\n     'name'               =\u003e _x( 'Books', 'post type general name', 'your-plugin-textdomain' ),\n     'singular_name'      =\u003e _x( 'Book', 'post type singular name', 'your-plugin-textdomain' ),\n     'menu_name'          =\u003e _x( 'Books', 'admin menu', 'your-plugin-textdomain' ),\n     'name_admin_bar'     =\u003e _x( 'Book', 'add new on admin bar', 'your-plugin-textdomain' ),\n     'add_new'            =\u003e _x( 'Add New', 'book', 'your-plugin-textdomain' ),\n     'add_new_item'       =\u003e __( 'Add New Book', 'your-plugin-textdomain' ),\n     'new_item'           =\u003e __( 'New Book', 'your-plugin-textdomain' ),\n     'edit_item'          =\u003e __( 'Edit Book', 'your-plugin-textdomain' ),\n     'view_item'          =\u003e __( 'View Book', 'your-plugin-textdomain' ),\n     'all_items'          =\u003e __( 'All Books', 'your-plugin-textdomain' ),\n     'search_items'       =\u003e __( 'Search Books', 'your-plugin-textdomain' ),\n     'parent_item_colon'  =\u003e __( 'Parent Books:', 'your-plugin-textdomain' ),\n     'not_found'          =\u003e __( 'No books found.', 'your-plugin-textdomain' ),\n     'not_found_in_trash' =\u003e __( 'No books found in Trash.', 'your-plugin-textdomain' )\n   );\n  \n   $args = array(\n     'labels'             =\u003e $labels,\n     'description'        =\u003e __( 'Description.', 'your-plugin-textdomain' ),\n     'public'             =\u003e true,\n     'publicly_queryable' =\u003e true,\n     'show_ui'            =\u003e true,\n     'show_in_menu'       =\u003e true,\n     'query_var'          =\u003e true,\n     'rewrite'            =\u003e array( 'slug' =\u003e 'book' ),\n     'capability_type'    =\u003e 'post',\n     'has_archive'        =\u003e true,\n     'hierarchical'       =\u003e false,\n     'menu_position'      =\u003e null,\n     'show_in_rest'       =\u003e true,\n     'rest_base'          =\u003e 'books',\n     'rest_controller_class' =\u003e 'WP_REST_Posts_Controller',\n     'supports'           =\u003e array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )\n   );\n  \n   register_post_type( 'book', $args );\n }\n ````\n \nRegister a genre post type, with REST API support\n \n````php\n/**\n * Based on example at: https://codex.wordpress.org/Function_Reference/register_taxonomy\n */\nadd_action( 'init', 'my_book_taxonomy', 30 );\nfunction my_book_taxonomy() {\n \n  $labels = array(\n    'name'              =\u003e _x( 'Genres', 'taxonomy general name' ),\n    'singular_name'     =\u003e _x( 'Genre', 'taxonomy singular name' ),\n    'search_items'      =\u003e __( 'Search Genres' ),\n    'all_items'         =\u003e __( 'All Genres' ),\n    'parent_item'       =\u003e __( 'Parent Genre' ),\n    'parent_item_colon' =\u003e __( 'Parent Genre:' ),\n    'edit_item'         =\u003e __( 'Edit Genre' ),\n    'update_item'       =\u003e __( 'Update Genre' ),\n    'add_new_item'      =\u003e __( 'Add New Genre' ),\n    'new_item_name'     =\u003e __( 'New Genre Name' ),\n    'menu_name'         =\u003e __( 'Genre' ),\n  );\n \n  $args = array(\n    'hierarchical'          =\u003e true,\n    'labels'                =\u003e $labels,\n    'show_ui'               =\u003e true,\n    'show_admin_column'     =\u003e true,\n    'query_var'             =\u003e true,\n    'rewrite'               =\u003e array( 'slug' =\u003e 'genre' ),\n    'show_in_rest'          =\u003e true,\n    'rest_base'             =\u003e 'genre',\n    'rest_controller_class' =\u003e 'WP_REST_Terms_Controller',\n  );\n \n  register_taxonomy( 'genre', array( 'book' ), $args );\n \n}\n````\n \n### ACF\n\nThis is an example that how you are able to customize WP REST API and and ACF to get_callback\n\nIn this example CUSTOMPOSTTYPE is your custom post type and can be any other post type in wordpress such as post , page and ...\n\n````php\nadd_action( 'rest_api_init', 'slug_register_acf_random' );\nfunction slug_register_acf_random() {\n    register_rest_field( 'CUSTOMPOSTTYPE',\n        'acf',\n        array(\n            'get_callback'    =\u003e 'slug_get_acf',\n            'update_callback' =\u003e '',\n            'schema'          =\u003e null,\n        )\n    );\n}\n\nfunction slug_get_acf( $object, $field_name, $request ) {\n    if (function_exists('get_fields')) {\n        return get_fields($data['id']);\n    }\n    return [];\n}\n````\n\n\n## Prerequisites\n\nYou will need the following things properly installed on your computer.\n\n* [Git](https://git-scm.com/)\n* [Node.js](https://nodejs.org/) (with NPM)\n* [Bower](https://bower.io/)\n* [Ember CLI](https://ember-cli.com/)\n* [PhantomJS](http://phantomjs.org/)\n\n## Installation\n\n* `git clone \u003crepository-url\u003e` this repository\n* `cd wp-api-ember`\n* `npm install`\n* `bower install`\n\n## Running / Development\n\n* `ember serve`\n* Visit your app at [http://localhost:4200](http://localhost:4200).\n\n### Code Generators\n\nMake use of the many generators for code, try `ember help generate` for more details\n\n### Running Tests\n\n* `ember test`\n* `ember test --server`\n\n### Building\n\n* `ember build` (development)\n* `ember build --environment production` (production)\n\n### Deploying\n\nSpecify what it takes to deploy your app.\n\n## Further Reading / Useful Links\n\n* [ember.js](http://emberjs.com/)\n* [ember-cli](https://ember-cli.com/)\n* Development Browser Extensions\n  * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi)\n  * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhadaily%2Fwp-api-ember","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhadaily%2Fwp-api-ember","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhadaily%2Fwp-api-ember/lists"}