我在一个安装了我的插件的网站上遇到了问题。“设置”页面将不会加载。当我单击“settings”(设置)时,它会加载settings(设置)页面,但在“Upgrade to 3.1”(升级到3.1)nag div之后,页面是空白的,就好像那里有一个die()。
我有两个文件,插件。php和插件管理。php
插件中有代码。php设置管理页面:
$my_dir = plugins_url(\'/img\', __FILE__);
add_options_page(
\'MY! Settings\',
\'MY! Settings\',
\'manage_options\',
\'my-plugin-admin.php\',
\'my_settings_admin\',
$my_dir.\'/favicon.png\', \'top\'
);
register_setting( \'my_settings_options\', \'my_settings\', \'my_settings_validate\' );
function my_settings_admin(){
global $wp_rewrite;
$wp_rewrite->flush_rules();
include_once dirname(__FILE__) . \'/my-plugin-admin.php\';
}
define( \'my_BASENAME\', plugin_basename( __FILE__ ) );
define( \'my_BASEFOLDER\', plugin_basename( dirname( __FILE__ ) ) );
define( \'my_FILENAME\', str_replace( my_BASEFOLDER.\'/\', \'\', plugin_basename(__FILE__)));
“我的设置”链接显示在“设置”菜单下,链接似乎指向正确的页面,但脚本不会加载,也不会在我的插件管理中跟踪任何内容。php
有什么想法吗?
更新:借助t31os帮助,以下是修复问题的更新函数:
function my_settings_admin(){
include_once dirname(__FILE__) . \'/my-plugin-admin.php\';
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
我只需在include语句之后移动wp\\u重写和刷新规则。虽然我不知道为什么。
最合适的回答,由SO网友:t31os 整理而成
如果我不得不大胆猜测问题的原因,我最初的想法是使用同花顺规则。
正如Andy所说,启用调试非常有帮助,如果您真的不想看到错误,您可以使用调试日志,在配置文件中使用以下内容。。
define(\'WP_DEBUG\', true); // Turn on debug mode
define(\'WP_DEBUG_LOG\', true); // Logs errors to wp-content/debug.log
define(\'WP_DEBUG_DISPLAY\', false); // Disable displaying errors
关于你的设置更新不重定向,通常是在nonce丢失或不正确时发生的,尽管我承认这可能是你的情况。
调试打开时是否显示任何错误?(如果使用该方法,也可以在日志中?)