回答編集履歴

1 見直し

退会済みユーザー

退会済みユーザー

2018/06/28 15:37  投稿

`if ( ! is_user_logged_in() && ! preg_match( '/^(wp-login\.php|async-upload\.php)/', basename( $_SERVER['REQUEST_URI'] ) ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {`
を、慣れない正規表現なんて使わずに
`if ( ! is_user_logged_in() && ! array_search( basename( $_SERVER['REQUEST_URI'] ), ['wp-login.php', 'async-upload.php'] ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {`
`if ( ! is_user_logged_in() && array_search( basename( $_SERVER['REQUEST_URI'] ), ['wp-login.php', 'async-upload.php'] ) !== FALSE && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {`
とかしたらどうかな。
array_search()で、ヒットするべきファイル名の配列と比較するっていう。
array_search()で、ヒットするべきファイル名の配列と比較するっていう。
ヒットしない時はFALSEを返すので、ほしい条件に合わせて !== とか === で適切に。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る