Краткое объяснение кода:

description и keywords в <head>, если соответствующие данные существуют.

Каждая функция выполняет свою роль, создавая, сохраняя и выводя мета-информацию для улучшения SEO сайта.
Функция темы (functions.php)
// Функция для добавления мета-блока Description в редактор постов и страниц
function add_meta_box_description() {
add_meta_box(
'meta_description', // ID мета-блока
'Meta Description', // Заголовок мета-блока
'custom_meta_description_callback', // Callback функция, которая будет выводить форму
['post', 'page'], // Типы контента, к которым будет добавлен мета-блок (посты и страницы)
'normal', // Позиция мета-блока (обычно 'normal' для стандартного положения)
'high' // Приоритет отображения мета-блока
);
}
add_action('add_meta_boxes', 'add_meta_box_description'); // Привязываем функцию к хук add_meta_boxes
// Функция callback для отображения мета-описания
function custom_meta_description_callback($post) {
// Получаем сохраненное значение мета-описания из базы данных
$description = get_post_meta($post->ID, '_meta_description', true);
// Отображаем поле ввода для мета-описания
echo '<textarea style="width:100%" name="meta_description">' . esc_textarea($description) . '</textarea>';
}
// Функция для сохранения мета-описания при сохранении поста или страницы
function save_meta_description($post_id) {
// Проверяем, если значение для meta_description установлено в POST запросе
if (isset($_POST['meta_description'])) {
// Сохраняем мета-описание в базу данных с фильтрацией
update_post_meta($post_id, '_meta_description', sanitize_text_field($_POST['meta_description']));
}
}
add_action('save_post', 'save_meta_description'); // Привязываем функцию к хук save_post
// Функция для добавления мета-блока Keywords в редактор постов и страниц
function add_meta_boxes_keywords() {
add_meta_box(
'meta_keywords', // ID мета-блока
'Meta Keywords', // Заголовок мета-блока
'custom_meta_keywords_callback', // Callback функция, которая будет выводить форму
['post', 'page'], // Типы контента (посты и страницы)
'normal', // Позиция мета-блока
'high' // Приоритет отображения мета-блока
);
}
add_action('add_meta_boxes', 'add_meta_boxes_keywords'); // Привязываем функцию к хук add_meta_boxes
// Функция callback для отображения мета-ключевых слов
function custom_meta_keywords_callback($post) {
// Получаем сохраненные ключевые слова из базы данных
$keywords = get_post_meta($post->ID, '_meta_keywords', true);
// Отображаем поле ввода для мета-ключевых слов
echo '<textarea style="width:100%" name="meta_keywords">' . esc_textarea($keywords) . '</textarea>';
}
// Функция для сохранения мета-ключевых слов при сохранении поста или страницы
function save_meta_keywords($post_id) {
// Проверяем, если значение для meta_keywords установлено в POST запросе
if (isset($_POST['meta_keywords'])) {
// Сохраняем мета-ключевые слова в базу данных с фильтрацией
update_post_meta($post_id, '_meta_keywords', sanitize_text_field($_POST['meta_keywords']));
}
}
add_action('save_post', 'save_meta_keywords'); // Привязываем функцию к хук save_post
// Функция для добавления мета-тегов в <head> для отдельных страниц и записей
function add_meta_tags() {
if (is_singular(['post', 'page'])) { // Проверяем, если это отдельная запись или страница
// Получаем мета-описание и мета-ключевые слова
$meta_description = get_post_meta(get_the_ID(), '_meta_description', true);
$meta_keywords = get_post_meta(get_the_ID(), '_meta_keywords', true);
// Если мета-описание не пустое, выводим тег <meta name="description">
if (!empty($meta_description)) {
echo '<meta name="description" content="' . esc_attr($meta_description) . '">' . "\n";
}
// Если мета-ключевые слова не пустые, выводим тег <meta name="keywords">
if (!empty($meta_keywords)) {
echo '<meta name="keywords" content="' . esc_attr($meta_keywords) . '">' . "\n";
}
}
}
add_action('wp_head', 'add_meta_tags'); // Привязываем функцию к хук wp_head
Хуки активации и инициализации в WordPress: Где и когда создавать таблицы
60
Select в HTML: скрытый placeholder, подсветка и динамический индикатор срочности
78
Как создать собственное меню в админке WordPress: простое руководство для новичков
85
Кастомизация страницы входа в WordPress: логотип, цвета, фоновая картинка и собственный CSS
123
Как изменить или полностью убрать текст в подвале (футере) админ-панели WordPress
99
Как обнаружить блокировщик рекламы на сайте с помощью JavaScript 204
Минимальная сумма заказа WooCommerce 182
Как добавить виджет для валют на панель администратора WordPress 155
Как добавить поле «Отдел» и ограничить видимость категорий в WordPress 151
Как добавить изображение к категории WordPress и вывести его на сайте 131
Добавить комментарий