REST API blocks
A simple plugin to add block data in json format into the rest api. Once installed, there will be two new fields added to the rest api, has_blocks and blocks. For example output. "has_blocks": true, "block_data": [ { "blockName": "core/image", "attrs": { "url": "https://www.spacedmonkey.com/wp-content/uploads/2018/12/test-image.jpg", "alt": "Terminal de aeropuerto", "caption": "fsfsdfdsfdssfd", "href": "https://www.spacedmonkey.com/test-image", "rel": "noreferrer noopener", "linkClass": "jonny-123", "linkTarget": "_blank", "id": 147355, "width": 582, "height": 327, "linkDestination": "attachment" }, "innerBlocks": [ ], "innerHTML": "\n fsfsdfdsfdssfd \n", "innerContent": [ "\n fsfsdfdsfdssfd \n" ], "rendered": "\n fsfsdfdsfdssfd \n" } ], Technical Notes Requires PHP 5.6+. Requires WordPress 5.5+. Issues and Pull requests welcome on the GitHub repository: https://github.com/spacedmonkey/wp-rest-blocks Development This plugin uses @wordpress/env for local development and testing. Prerequisites Node.js 20+ and npm Docker Desktop (must be installed and running) Setup Clone the repository Install dependencies: bash npm install composer install Start the WordPress environment: bash npm run env:start This will start a local WordPress instance at http://localhost:8888 (admin: http://localhost:8888/wp-admin with username admin and password password) Note: Docker must be running for this to work. The first time you run this, it will download WordPress and set up the database, which may take a few minutes. Available Commands npm run env:start – Start the WordPress environment npm run env:stop – Stop the WordPress environment npm run env:reset – Reset the environment (clean database) npm run env:destroy – Destroy the environment completely npm run test:php – Run PHPUnit tests npm run test:php:multisite – Run PHPUnit tests in multisite mode npm run lint:php – Run PHP CodeSniffer npm run lint:php:fix – Fix PHP coding standards issues automatically Running Tests After starting the environment with npm run env:start, you can run the tests: `bash npm run test:php ` For multisite tests: `bash npm run test:php:multisite ` Accessing the Site Development site: http://localhost:8888 Admin dashboard: http://localhost:8888/wp-admin (admin/password) Test site: http://localhost:8889 Test admin: http://localhost:8889/wp-admin (admin/password)
Top keywords
- run17×4.94%
- npm14×4.07%
- npm run12×3.49%
- php9×2.62%
- env7×2.03%
- wordpress7×2.03%
- admin6×1.74%
- environment6×1.74%
- http6×1.74%
- http localhost6×1.74%
- localhost6×1.74%
- npm run env6×1.74%
REST API for Relevanssi
This plugin provides simple REST API for the popular search WordPress search engine – Relevanssi. As far as this plugin provides API for the Relevanssi plugin, it should be installed. Key features Search through posts of a certain type. By default all types. Results in pagination and optional. Sets X-WP-Total header with a total number of records, the same way as the default search API does. Sets X-WP-TotalPages header with a total number of pages, the same way as the default search API does. Multilingual websites support. Both WPML and Polylang are supported, but not tested well, so let me know if you will find any problems. Taxonomy filters are supported now. Some features may be missed, so feel free to report them. Ordering option added. It is also possible to order by meta_key/meta_value/meta_value_num. Brief usage examples https://[your domain]/wp-json/relevanssi/v1/search?keyword=query https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&per_page=5 https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&per_page=5&page=2 Define post type: https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&per_page=5&page=2&type=post Filter by taxonomy/taxonomies: https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3 https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&tax_query[relation]=AND&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[1][taxonomy]=category&tax_query[1][field]=id&tax_query[1][terms]=2 Exclude category via taxonomies: https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[0][operator]=NOT IN For multilingual websites (WPML & Polylang): https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&lng=en Results in order: https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=DESC https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=ASC https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&type=post&meta_key=some_key&orderby=meta_value|meta_value_num&order=ASC Demo website You can try the plugin on our demo website http://demo.erlycoder.com/demo1/. For example, you can try the following request: Basic: http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test Order posts by modification time: http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=DESC http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=ASC Filter posts by taxonomy (one single category): http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3 Filter posts by taxonomy (exclude category): [http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[0][operator]=NOT IN](http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[0][operator]=NOT IN)