WordPress как на ладони

Удаление shortlink

Здравствуйте! Хотел добавить этот комментарий к статье, но не пускает пишет: 405 not allowed проверьте добавление комментов на сайт!

Сам вопрос:

remove_action( 'wp_head', 'wp_shortlink_wp_head', 10 );

// убирает shortlink из head, но этаже короткая ссылка вылазит в заголовке ответа сервера.

1) Нужно ли ее оттуда тоже удалять? (прикреплю скрин )

2) Для удаления нашел такой код:

remove_action('template_redirect', 'wp_shortlink_header', 11 );

Он действует, но ничего лишнего кроме этой короткой ссылки он не будет "подрезать"?

3) и еще в конце этих функций есть цифры ,10 или ,11 (тот код что я скинул), что они означают? и можно ли например использовать вот так без них:

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

они ведь тоже действуют, в чем разница?

Приходят ли уведомления об ответе на вопрос на почту? если нет сделайте пожалуйста!

0
Гость
7.6 лет назад
  • 1
    campusboy4748 www.youtube.com/c/wpplus

    Привет!

    10 или ,11 (тот код что я скинул), что они означают?

    Это приоритет, об этом написано в статье Тимура Как работают хуки в WordPress. Если без приоритета всё работает - можно и не писать, если вкратце.

    Нужно ли ее оттуда тоже удалять?

    Я из кода страницы его удаляю, чтобы Поисковые системы по нему не переходили, так как перейдя по нему, его перенаправит обратно на статью с ЧПУ. А вот в ответе сервера не вижу смысла удалять. Есть да есть, не мешает. Я бы лично код:

    remove_action('template_redirect', 'wp_shortlink_header', 11 );

    не применял бы, так как толку он точно не даст, а вот его отсутствие неизвестно как скажется. Во всяком случае это можно проверить. Пройдите по укороченной ссылке, если в ответ вернулся 301 редирект и браузер открыл статью с ЧПУ, то всё норм, удаление не помешало движку отработать всё как надо.

    Комментировать
  • 1
    Kama9616

    1) Нужно ли ее оттуда тоже удалять?

    Я вообще не вижу смысла их удалять, впрочем зачем они вообще нужны тоже не знаю. Поэтому, скажу так - можно удалить если не нравятся они вам... В этом нет ничего страшного, вроде.

    2) Он действует, но ничего лишнего кроме этой короткой ссылки он не будет "подрезать"?

    Нет, он удалить только эту часть заголовка, ничего лишнего... Вот функция эта:

    function wp_shortlink_header() {
    	if ( headers_sent() )
    		return;
    
    	$shortlink = wp_get_shortlink(0, 'query');
    
    	if ( empty($shortlink) )
    		return;
    
    	header('Link: <' . $shortlink . '>; rel=shortlink', false);
    }

    3) и еще в конце этих функций есть цифры ,10 или ,11 (тот код что я скинул), что они означают?

    Это приоритеты хука. Они важны! Чтобы удалить хук, нужно указать его приоритет обязательно! Если приоритеты не совпадают, то хук не удалиться! Т.е. строка

    remove_action('template_redirect', 'wp_shortlink_header');

    Не будет работать!

    Пример удаления хука с приоритетом:

    function foo(){
    	echo 'мой текст';
    }
    
    add_action('myaction', 'foo', 11);
    
    do_action('myaction'); //> выведет: 'мой текст'
    
    remove_action('myaction', 'foo'); // пробуем удалить без приоритета
    
    do_action('myaction'); //> выведет: 'мой текст' хотя мы вроде удалили событие!
    
    remove_action('myaction', 'foo', 11); // удаляем с приоритетом
    
    do_action('myaction'); //> ничего не выведет. Потому что мы удалили событие правильно!

    -

    Подытожу:
    Вы все сделали правильно!

    Добавил пример в описание wp_get_shortlink()

    Насчет приоритетов прочитайте раздел: как удалить хук

    Евгений 7.6 лет назад

    Спасибо за ответ! единственное что не понял, как определить какой приоритет у хука, где он выставляется?

    remove_action('template_redirect', 'wp_shortlink_header', 11 );

    почему здесь 11, а не 5 или 17?

    campusboy 7.6 лет назад

    Потому что разработчики WP решили дать этому экшену именно такой приоритет. Прописан он в файле default-filters.php (папка wp-includes). Вырезка из этого файла:

    .
    .
    .
    add_action( 'wp_head',             'wp_site_icon',                    99    );
    add_action( 'wp_footer',           'wp_print_footer_scripts',         20    );
    add_action( 'template_redirect',   'wp_shortlink_header',             11, 0 );
    add_action( 'wp_print_footer_scripts', '_wp_footer_scripts'                 );
    add_action( 'init',                'check_theme_switched',            99    );
    .
    .
    .
    Kama 7.6 лет назад

    Хук добавляется с таким приоритетом в WP... См тут: wp-includes/default-filters.php

    Евгений 7.6 лет назад

    Спасибо теперь понятно, но возник еще один вопрос, по вырезке кода что человек выше прислал, у шортлинка стоит значение (11, 0) зачем вторая цифра нужна?

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация