Bu sorunu çözmek için, istenen URI'nin WordPress sitesinin Rest API URL'sinin altına düştüğü varsayımına dayanarak basit bir özel işlev yazdım, o zaman bunun bir Rest API isteği olduğunu izler.
Geçerli bir son nokta veya kimliği doğrulanmış olsun, bu işlevin belirlenmesi gerekmez. Soru şudur: URL potansiyel bir Rest API URL'si midir?
function isRestUrl() {
$bIsRest = false;
if ( function_exists( 'rest_url' ) && !empty( $_SERVER[ 'REQUEST_URI' ] ) ) {
$sRestUrlBase = get_rest_url( get_current_blog_id(), '/' );
$sRestPath = trim( parse_url( $sRestUrlBase, PHP_URL_PATH ), '/' );
$sRequestPath = trim( $_SERVER[ 'REQUEST_URI' ], '/' );
$bIsRest = ( strpos( $sRequestPath, $sRestPath ) === 0 );
}
return $bIsRest;
}
Senin Eğer $_SERVER['REQUEST_URI']
is düzgün doldurulan değil, bu işlev hala dönecektir false
bakmaksızın,.
URL'nin sabit kodlaması yoktur, bu nedenle herhangi bir nedenle API URL tabanınızı değiştirirseniz, bu uyarlanır.
init
. Ayrıca, API bölümlerinin REST istekleri olmayan isteklerde dahili olarak kullanılabileceğine dikkat edin, bu nedenle bu algılamaya güveniyorsanız bir şeyi kırma riskiniz vardır.