Parsed: 126485

function load_template( $_template_file, $require_once = true, $args = array() ) {
  global $posts, $post, $wp_did_header, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID;

  if ( is_array( $wp_query->query_vars ) ) {
    /*
		 * This use of extract() cannot be removed. There are many possible ways that
		 * templates could depend on variables that it creates existing, and no way to
		 * detect and deprecate it.
		 *
		 * Passing the EXTR_SKIP flag is the safest option, ensuring globals and
		 * function variables cannot be overwritten.
		 */
    // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
    extract( $wp_query->query_vars, EXTR_SKIP );
  }

  if ( isset( $s ) ) {
    $s = esc_attr( $s );
  }

  
/**
 * Fires before a template file is loaded.
 *
 * @since 6.1.0
 *
 * @param string $_template_file The full path to the template file.
 * @param bool   $require_once   Whether to require_once or require.
 * @param array  $args           Additional arguments passed to the template.
 */
  do_action( 'wp_before_load_template', $_template_file, $require_once, $args );

  if ( $require_once ) {
    require_once $_template_file;
  } else {
    require $_template_file;
  }

  
/**
 * Fires after a template file is loaded.
 *
 * @since 6.1.0
 *
 * @param string $_template_file The full path to the template file.
 * @param bool   $require_once   Whether to require_once or require.
 * @param array  $args           Additional arguments passed to the template.
 */
  do_action( 'wp_after_load_template', $_template_file, $require_once, $args );
}