WP_REST_Edit_Site_Export_Controller WordPress Class
The WP_REST_Edit_Site_Export_Controller class is used to manage site exports through the WordPress REST API.
WP_REST_Edit_Site_Export_Controller #
Controller which provides REST endpoint for exporting current templates and template parts.
Description
See also
Source
File: wp-includes/rest-api/endpoints/class-wp-rest-edit-site-export-controller.php
class WP_REST_Edit_Site_Export_Controller extends WP_REST_Controller { /** * Constructor. * * @since 5.9.0 */ public function __construct() { $this->namespace = 'wp-block-editor/v1'; $this->rest_base = 'export'; } /** * Registers the site export route. * * @since 5.9.0 */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'export' ), 'permission_callback' => array( $this, 'permissions_check' ), ), ) ); } /** * Checks whether a given request has permission to export. * * @since 5.9.0 * * @return WP_Error|true True if the request has access, or WP_Error object. */ public function permissions_check() { if ( current_user_can( 'edit_theme_options' ) ) { return true; } return new WP_Error( 'rest_cannot_export_templates', __( 'Sorry, you are not allowed to export templates and template parts.' ), array( 'status' => rest_authorization_required_code() ) ); } /** * Output a ZIP file with an export of the current templates * and template parts from the site editor, and close the connection. * * @since 5.9.0 * * @return WP_Error|void */ public function export() { // Generate the export file. $filename = wp_generate_block_templates_export_file(); if ( is_wp_error( $filename ) ) { $filename->add_data( array( 'status' => 500 ) ); return $filename; } $theme_name = basename( get_stylesheet() ); header( 'Content-Type: application/zip' ); header( 'Content-Disposition: attachment; filename=' . $theme_name . '.zip' ); header( 'Content-Length: ' . filesize( $filename ) ); flush(); readfile( $filename ); unlink( $filename ); exit; } }
Expand full source codeCollapse full source codeView on TracView on GitHub
Methods
- __construct— Constructor.
- export— Output a ZIP file with an export of the current templates and template parts from the site editor, and close the connection.
- permissions_check— Checks whether a given request has permission to export.
- register_routes— Registers the site export route.
Changelog
Version | Description |
---|---|
5.9.0 | Introduced. |