WP_REST_Templates_Controller::_sanitize_template_id() – Requesting this endpoint for a template like ‘twentytwentytwo//home’ requires using a path like /wp/v2/templates/twentytwentytwo//home. There are special cases when WordPress routing corrects the name to contain only a single slash like ‘twentytwentytwo/home’.

You appear to be a bot. Output may be restricted

Description

Requesting this endpoint for a template like 'twentytwentytwo//home' requires using a path like /wp/v2/templates/twentytwentytwo//home. There are special cases when WordPress routing corrects the name to contain only a single slash like 'twentytwentytwo/home'.

This method doubles the last slash if it's not already doubled. It relies on the template ID format {theme_name}//{template_slug} and the fact that slugs cannot contain slashes.

Usage

$string = WP_REST_Templates_Controller::_sanitize_template_id( $id );

Parameters

$id
( string ) required – Template ID.

Returns

string Sanitized template ID.

Source

File name: wordpress/wp-includes/rest-api/endpoints/class-wp-rest-templates-controller.php


Lines:

1 to 19 of 19
  public function _sanitize_template_id( $id ) {
    $id = urldecode( $id );

    $last_slash_pos = strrpos( $id, '/' );
    if ( false === $last_slash_pos ) {
      return $id;
    }

    $is_double_slashed = substr( $id, $last_slash_pos - 1, 1 ) === '/';
    if ( $is_double_slashed ) {
      return $id;
    }
    return (
      substr( $id, 0, $last_slash_pos )
      . '/'
      . substr( $id, $last_slash_pos )
    );
  }
 

 View on GitHub View on Trac