diff --git src/wp-includes/js/api-request.js src/wp-includes/js/api-request.js
index f0a84ef48f..4b299beb69 100644
|
|
|
22 | 22 | apiRequest.buildAjaxOptions = function( options ) { |
23 | 23 | var url = options.url; |
24 | 24 | var path = options.path; |
25 | | var namespaceTrimmed, endpointTrimmed; |
| 25 | var namespaceTrimmed, endpointTrimmed, apiRoot; |
26 | 26 | var headers, addNonceHeader, headerName; |
27 | 27 | |
28 | 28 | if ( |
… |
… |
|
38 | 38 | } |
39 | 39 | } |
40 | 40 | if ( typeof path === 'string' ) { |
41 | | url = wpApiSettings.root + path.replace( /^\//, '' ); |
| 41 | apiRoot = wpApiSettings.root; |
| 42 | path = path.replace( /^\//, '' ); |
| 43 | |
| 44 | // API root may already include query parameter prefix if site is |
| 45 | // configured to use plain permalinks. |
| 46 | if ( 'string' === typeof apiRoot && -1 !== apiRoot.indexOf( '?' ) ) { |
| 47 | path = path.replace( '?', '&' ); |
| 48 | } |
| 49 | |
| 50 | url = apiRoot + path; |
42 | 51 | } |
43 | 52 | |
44 | 53 | // If ?_wpnonce=... is present, no need to add a nonce header. |
diff --git tests/qunit/wp-includes/js/api-request.js tests/qunit/wp-includes/js/api-request.js
index 99a1213ea3..86d0d72cda 100644
|
|
|
140 | 140 | window.wpApiSettings.root = 'http://localhost/index.php?rest_route=/'; |
141 | 141 | assert.deepEqual( wp.apiRequest.buildAjaxOptions( { |
142 | 142 | namespace: '/wp/v2/', |
143 | | endpoint: '/posts' |
| 143 | endpoint: '/posts?orderby=title' |
144 | 144 | } ), { |
145 | | url: 'http://localhost/index.php?rest_route=/wp/v2/posts', |
| 145 | url: 'http://localhost/index.php?rest_route=/wp/v2/posts&orderby=title', |
146 | 146 | headers: nonceHeader |
147 | 147 | } ); |
148 | 148 | } |