Skip to content
forked from plank/wcmtl-api

Word Camp Canada 2024. Plugin to demo custom API endpoints in WordPress.

License

Notifications You must be signed in to change notification settings

cgarofalo/wceh-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wceh-api

Word Camp Canada 2024. Plugin to demo custom API endpoints in WordPress.

Installation

  1. Download the plugin as a zip file.
  2. Upload the zip file to your WordPress site. (Preferably a local development site.)
  3. Activate the plugin.
  4. Create some new content in "Cats".
  5. Add some taxonomy terms to cats. (Colours, Breeds and Patterns)

Optional

Install the Polylang plugin to have a translatable API endpoint. After installation, enable translations for the "Cats" post type and the "Colours", "Breeds" and "Patterns" taxonomies. Polylang Documentation

Usage

Visit the following endpoints to see the data in JSON format. Note: Use Firefox or Chrome with the JSONvue extension to view the JSON in a readable format.

  • /wp-json/wceh-api/v1/basic
  • /wp-json/wceh-api/v1/cats

The cats endpoint accepts the following parameters:

  • /wp-json/wceh-api/v1/cats?q=<search term>
  • /wp-json/wceh-api/v1/cats?colour=<colour slug>
  • /wp-json/wceh-api/v1/cats?breed=<breed slug>
  • /wp-json/wceh-api/v1/cats?pattern=<tabby slug>
  • /wp-json/wceh-api/v1/cats?page=<page number>

With Polylang installed, the cats endpoint will also accept the following parameter: (Note: Only en and fr are supported. This can be changed in the api/cats.php file. Line 28.)

  • /wp-json/wceh-api/v1/cats?lang=<language code>

The parameters can be combined:

  • /wp-json/wceh-api/v1/cats?colour=<colour>&breed=<breed>&pattern=<tabby>

These parameters will filter the results with the AND operator. There are 12 items per page.

Sample Cat Data

{
  "postCount": 2,
  "cats": [
    {
      "id": 9,
      "title": "Fitz",
      "excerpt": "Vestibulum rutrum, mi nec elementum vehicula, eros quam gravida nisl, id fringilla neque ante vel mi. Nam commodo suscipit quam. Nullam vel sem. Vivamus euismod mauris. Ut leo.",
      "content": "Sed ante. Vivamus tortor. Duis mattis egestas metus. Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.",
      "image": "https://example.com/wp-content/uploads/2023/10/fitz.jpg",
      "alt_text": "A brown scottish fold cat sitting on a sofa.",
      "breeds": [
        {
          "slug": "scottish-fold",
          "name": "Scottish Fold"
        }
      ],
      "colours": [
        {
          "slug": "brown",
          "name": "Brown"
        }
      ],
      "patterns": [
        {
          "slug": "colourpoint",
          "name": "Colourpoint"
        }
      ]
    },
    {
      "id": 8,
      "title": "Pekoe",
      "excerpt": "Aenean tellus metus, bibendum sed, posuere ac, mattis non, nunc. Sed in libero ut nibh placerat accumsan. Quisque id mi. Morbi mollis tellus ac sapien. Proin faucibus arcu quis ante.",
      "content": "Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi. Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.", 
      "image": "https://example.com/wp-content/uploads/2023/10/pekoe.jpg",
      "alt_text": "An orange tabby cat sleeping on a pillow.",
      "breeds": [
        {
          "slug": "domestic-shorthair",
          "name": "Domestic Shorthair"
        }
      ],
      "colours": [
        {
          "slug": "orange",
          "name": "Orange"
        }
      ],
      "patterns": [
        {
          "slug": "tabby",
          "name": "Tabby"
        }
      ]
    }
  ]
}

Sample Basic Data

{
  "cats": [
    {
      "name": "Pekoe",
      "colour": "orange",
      "breed": "domestic shorthair",
      "pattern": "tabby"
    },
    {
      "name": "Milo",
      "colour": "grey",
      "breed": "domestic shorthair",
      "pattern": "solid"
    },
    {
      "name": "Poppy",
      "colour": "cream",
      "breed": "siamese",
      "pattern": "pointed"
    }
  ]
}

About

Word Camp Canada 2024. Plugin to demo custom API endpoints in WordPress.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%