OOPアプローチを使用してプラグインを開発していますが、many redirects
という問題が発生しています。wp_redirect()関数を使用すると、リダイレクトされる可能性があります
プラグインを有効にしていくつかの条件が満たされない場合、私のプラグインをページにリダイレクトします。私はTo many redirects...
エラーメッセージを受け取り続ける。以下に示すように
私のコードは次のとおりです。私は
if (! defined('WPINC')) die;
if (! class_exists('AwesomePlugin')) {
class AwesomePlugin {
public function __construct(){
//Register admin menus
add_action('admin_menu', [$this, add_menu]);
//Init plugin
add_action('admin_init', [$this, 'init_plugin']);
}
/**
*
* Init plugin
*/
public function init_plugin(){
if(!isset(get_option("some_option"))){
wp_redirect("admin.php?page=some-page"); exit; //This gives too many redirects
}
wp_redirect('admin.php?page=dashboard'); exit;
}
/**
* Add menu and submenu items
*/
public function add_menu(){
add_menu_page(
'Dashboard', 'Dashboard', 'manage_options', 'dashboard',
[__CLASS__, 'load_dashboard_view'],
plugins_url('logo.png', __FILE__)
);
add_submenu_page(
'', 'Signup page', 'Signup page', 'manage_options',
'sign-up', [__CLASS__, 'load_signup_view']
);
}
/**
* Dashboard page
*/
public function load_dashboard_view(){
include(plugin_dir_path(__FILE__) . 'dashboard.php');
}
/**
* Signup page
*/
public function load_signup_view(){
include(plugin_dir_path(__FILE__) . 'signup.php');
}
}
AwesomePlugin()
}
何をしないのですか?
EDIT:私がロードしているページに関係なく、init_plugin関数は起動していることを理解しています。その結果、ユーザーはサインアップにリダイレクトされ、多くのリダイレクトエラーメッセージが表示されます。これをどうすれば解決できますか?