我使用以下代碼將非移動用戶重定向到網站的桌面版本(回應式主題不是一個選項),并且在我需要訪問 WP Admin 之前它可以完美運行。如何忽略 /wp-admin/ 或 wp-login.php 頁面,以便在尚未登錄的情況下仍然可以訪問該站點?
if (!is_admin()) {
if (!wp_is_mobile()) {
// If not using mobile
wp_redirect('https://my-desktop-site.com');
exit;
}
}
uj5u.com熱心網友回復:
is_admin確定當前請求是否針對管理界面頁面。
在任何情況下,它都不會觸發,wp-login.php因為它不是管理螢屏。它確實會在 ajax 請求時觸發,因此應該處理這種情況。wp_doing_ajax()確定當前請求是否為 WordPress Ajax 請求。
is_login() 是最近宣布的6.1,但目前我們仍然需要依靠$_SERVER["REQUEST_URI"].
<?php
add_action( 'template_redirect', function () {
$request_uri = filter_input( INPUT_SERVER, 'REQUEST_URI', FILTER_SANITIZE_STRING );
if ( ! is_admin() && ! str_contains( basename( $request_uri ), 'wp-login.php' ) ) {
if ( ! wp_is_mobile() ) {
wp_redirect( 'https://...' );
exit;
}
};
} );
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/522115.html
標籤:phpWordPress
上一篇:WP_Query獲取其他表列值
