namespace, '/' . $this->rest_base, [ [ 'methods' => \WP_REST_Server::READABLE, 'callback' => [ $this, 'get_item' ], 'permission_callback' => [ $this, 'permissions_check' ], ], [ 'methods' => \WP_REST_Server::CREATABLE, 'callback' => [ $this, 'update_item' ], 'permission_callback' => [ $this, 'permissions_check' ], ], ] ); } /** * Get ads.txt content. * * @param \WP_REST_Request $request Request object. * @return \WP_REST_Response|\WP_Error */ public function get_item( $request ) { $file_path = $this->get_file_path(); $fs = $this->get_filesystem(); $exists = $fs ? $fs->exists( $file_path ) : file_exists( $file_path ); $content = ''; $root_path = trailingslashit( get_home_path() ); $writable = $fs ? $fs->is_writable( $root_path ) || ( $exists && $fs->is_writable( $file_path ) ) : false; if ( $exists ) { $file_content = $fs ? $fs->get_contents( $file_path ) : false; if ( false !== $file_content ) { $content = $file_content; } } return rest_ensure_response( [ 'exists' => $exists, 'content' => $content, 'writable' => $writable, 'path' => $file_path, ] ); } /** * Update or create ads.txt. * * @param \WP_REST_Request $request Request object. * @return \WP_REST_Response|\WP_Error */ public function update_item( $request ) { $content = $request->get_param( 'content' ); $sanitized_content = wp_strip_all_tags( $content ); $sanitized_content = preg_replace( '/<\?php|