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 falsebakmaksı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.