Wordpress wp_redirect (), приводящий к ошибке на страницах администратора - PullRequest
0 голосов
/ 03 ноября 2019

У меня проблема с перенаправлением людей со страниц администрирования 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...