do_robots()
Виводить на екран контент файлу robots.txt . Встановлює заголовок HTTP файлу. Створює динамічний файл robots.txt .
У WP ця функція зачеплена на однойменний хук template-loader.php для URL /robots.txt :
// Process feeds and trackbacks even if not using themes. if ( is_robots() ) : /** * Fired when the template loader determines a robots.txt request. * * @ Since 2.1.0 */ do_action( 'do_robots'); return; elseif ( is_feed() ) : ...
Змінити результат цієї функції (код файлу) можна через хуки:
- do_robotstxt – подія спрацьовує на початку функції. На цьому хуку можна вивести якийсь текст і він буде виведений у файлі robots.txt перед базовим кодом файлу.
- robots_txt – фільтр спрацьовує в кінці і фільтрує код (текст) файлу robots.txt.
Про файл robots.txt і правила його створення, ви можете почитати в цій моїй статті .
Функція встановлює HTTP заголовок, тому використання її всередині файлу HTML приведе до помилки.
Створювати файл robots.txt краще за допомогою цієї функції, а не шляхом прямого створення файлу в корені сайту. Це дасть можливість плагінам змінювати ваш robots.txt .
Хуки з функції
Повертає
null. Нічого.
Використання
do_robots();
Приклади
#1 Створимо динамічний robots.txt
Через файл теми functions.php . У такому разі створювати файл robots.txt фізично не потрібно. Додамо такий код на початок файлу:
add_action( 'do_robotstxt', 'my_robotstxt');
function my_robotstxt(){
$lines = [
'User-agent: *',
'Disallow: /wp-admin/',
'Disallow: /wp-includes/',
'',
];
echo implode("rn", $lines);
die; // обриваємо роботу PHP
}Тепер, пройшовши за посиланням, http://example.com/robots.txtми отримаємо такий текст:
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/
#2 Впровадимося в robots.txt і змінимо його через фільтрrobots_txt
Додамо правило “Disallow: */comments”:
add_filter( 'robots_txt', 'add_robotstxt', -1);
function add_robotstxt( $text ){
$text .= "Disallow: */comments";
return $text;
}Пройшовши за посиланням http://example.com/robots.txt отримаємо приблизно такий текст:
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: */comments
список змін
| З версії 2.1.0 | Введено. |
| З версії 5.3.0 | Переміщення “Disallow: /” output if search engine visiblity is discouraged in favor of robots meta HTML tag via wp_robots_no_robots() filter callback. |