Убираем кривыми руками rel=shortlink в WordPress

Убираем кривыми руками rel=shortlink в WordPress

Достался мне значит очередной сайт

Смотрим логи, а тама

[warn] [pid 25449] sapi_apache2.c(362): [client 2a03:6f00:1::5c35:6085:43826] PHP Warning:  call_user_func_array() expects parameter 1 to be a valid callback, function 'wp_shortlink_header' not found or invalid function name in /home/c/......./public_html/wp-includes/class-wp-hook.php on line 284

Ага, в скрипте class-wp-hook.php при помощи call_user_func_array() вызывается не объявленная функция wp_shortlink_header. Как так? Функция ядра и не объявлена?

Ищем объявление через Find in files и вуаля:

/**
 * Injects rel=shortlink into the head if a shortlink is defined for the current page.
 *
 * Attached to the {@see 'wp_head'} action.
 *
 * @since 3.0.0
 
function wp_shortlink_wp_head() {
	$shortlink = wp_get_shortlink( 0, 'query' );

	if ( empty( $shortlink ) )
		return;

	echo "<link rel='shortlink' href='" . esc_url( $shortlink ) . "' />\n";
}*/

/**
 * Sends a Link: rel=shortlink header if a shortlink is defined for the current page.
 *
 * Attached to the {@see 'wp'} action.
 *
 * @since 3.0.0
 
function wp_shortlink_header() {
	if ( headers_sent() )
		return;

	$shortlink = wp_get_shortlink(0, 'query');

	if ( empty($shortlink) )
		return;

	header('Link: <' . $shortlink . '>; rel=shortlink', false);
}
*/

Находим даже две закомментированные функции в файле /wp-includes/link-template.php — одна выводит в head тэг <link rel=’shortlink’… а вторая посылает такой же заголовок браузеру.

Гуглим эту дичь и находим вот что — https://www.seowind.ru/wordpress/ubiraem-link-relshortlink-iz-zagolovka-otveta-servera-wp/

Надеюсь Юрий морально вырос над собой с далекого 2013 года и больше таких советов не раздает, к тому же в комментах есть правильное решение. Вот оно :

remove_action( 'wp_head','wp_shortlink_wp_head',10);
remove_action( 'template_redirect', 'wp_shortlink_header', 11);

Добавляем эти строчки в functions.php, и возвращаем все на место. Обратите внимание на приоритеты! Их нужно расставить так, как они были при объявлении хука. Вот на каме подробнее об этом https://wp-kama.ru/question/udalenie-shortlink

Все, лог ошибок PHP девственно чист.

Евгений

Яндекс.Метрика