Из WordPress the_permalink :
the_permalink
Отображает постоянную ссылку для текущего сообщения.
Так что на самом деле отображает его, и после вывод перенаправления заголовка завершается неудачно, поскольку заголовки уже отправлены.
Требуется get_permalink , который возвращает постоянную ссылку вместо ее отображения:
$perma_url = get_permalink();
wp_safe_redirect( $perma_url );
exit;
Кроме того, со следующим или любой другой эквивалентный параметр WordPress покажет вам:
error_reporting(E_ALL);
ini_set('display_errors', '1');