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. |