# elementor/4.2.0/modules/wp-rest/module.php

Elementor Website Builder – more than just a page builder, version 4.2.0. 41 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.2.0/code/modules/wp-rest/module.php
- Raw: https://pluginprobe.com/plugins/elementor/4.2.0/raw/modules/wp-rest/module.php
- Modified: 2026-05-20T12:19:28+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/4.2.0/code/modules/wp-rest/module.php#L10-L20`.

```php
<?php

namespace Elementor\Modules\WpRest;

use Elementor\Core\Base\Module as BaseModule;
use Elementor\Modules\WpRest\Classes\Design_System_REST_API;
use Elementor\Modules\WpRest\Classes\Elementor_Post_Meta;
use Elementor\Modules\WpRest\Classes\Elementor_Settings;
use Elementor\Modules\WpRest\Classes\Elementor_User_Meta;
use Elementor\Modules\WpRest\Classes\Post_Query;
use Elementor\Modules\WpRest\Classes\Term_Query;
use Elementor\Modules\WpRest\Classes\User_Query;
use Elementor\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends BaseModule {

	public function get_name() {
		return 'wp-rest';
	}

	public function __construct() {
		parent::__construct();

		add_action( 'rest_api_init', function () {
			( new Elementor_Post_Meta() )->register();
			( new Elementor_Settings() )->register();
			( new Elementor_User_Meta() )->register();
			( new Post_Query() )->register( Post_Query::ENDPOINT );
			( new Term_Query() )->register( Term_Query::ENDPOINT );
			( new User_Query() )->register( User_Query::ENDPOINT );
			if ( Plugin::instance()->experiments->is_feature_active( 'site-builder' ) ) {
				( new Design_System_REST_API() )->register();
			}
		} );
	}
}

```
