MoyaSystem

もやしです。

【解決編】WordPressでダッシュボードにアクセス制御かけたらDB更新できなくなった件

現象

前回の記事を参照。

原因

結論から言うと「管理者以外ダッシュボードにログインさせなくする」こと自体は何も問題なかった。
まずかったのは exit; の1行。これだけ。まじこれだけ。

<?php
// 管理者以外の場合ダッシュボードにログインさせない
add_action( 'admin_init', 'disable_admin_pages' );
function disable_admin_pages() {
	if(!current_user_can('administrator')){
		$redirect_url = get_option('home');
		header("Location: ".$redirect_url);
		exit;
	}
}
?>

exit;があるばかりに、'admin_init' 時に実行される後のスクリプトが全て行われなくなっていた。
詳細は追いきれていないものの、'admin_init'の後処理が行われないとDB更新に必要な準備が整わない模様。

ということで

exit;を削除して問題解決しました。
これだけでほぼ1日半費やしてしまった……
まぁローカル環境の整備とか、その他の技術的負債の消化も行ったからいいんですけど。
あー悔しい。今夜は飲みに行こう。