У меня проблема с перенаправлением людей со страниц администрирования WordPress.
Использование функции php wp_redirect () приводит к тому, что на странице отображаются следующие сообщения об ошибках при вызове функцией из functions.php.
Warning: Cannot modify header information - headers already sent by (output started at xyz/wp-admin/includes/template.php:2340) xyz/wp-includes/pluggable.php on line 1251
Warning: Cannot modify header information - headers already sent by (output started at xyz/wp-admin/includes/template.php:2340) in xyz/wp-includes/pluggable.php on line 1254
Файл pluggable.php не редактировался вручную.
Для выполнения функции использовался хук admin_head
, но он даже пытался использовать хук admin_enqueue_scripts
, но получилтот же результат.
Я нашел решение этой проблемы только там, где был доступен исходный html-файл.
Вот код в functions.php
, приводящий к описанному выше результату.
add_action('admin_head', 'gd_user_profile_edit_disable');
function gd_user_profile_edit_disable() {
global $pagenow;
if ($pagenow!=='profile.php' && $pagenow!=='user-edit.php' || current_user_can('administrator')) {
return;
} else {
$redirect = get_site_url();
wp_redirect( $redirect );
exit;
}
}
Будем весьма благодарны за любые объяснения того, как правильно реализовать wp_redirect ()!
Zsigio