Коротке пояснення коду:


Кожна функція виконує свою роль, створюючи, зберігаючи та виводячи мета-інформацію для покращення 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: Де і коли створювати таблиці
165
Як створити таблицю в WordPress через functions.php: Повний гід по типам даних MySQL
170
Select в HTML: прихований placeholder, підсвічування і динамічний індикатор терміновості
267
Як створити власне меню в адмінці WordPress: простий гайд для новачків
177
Кастомізація сторінки входу в WordPress: логотип, кольори, фонове зображення та власний CSS
366
Кастомізація сторінки входу в WordPress: логотип, кольори, фонове зображення та власний CSS 366
Як виявити блокувальник реклами на сайті за допомогою JavaScript 283
Select в HTML: прихований placeholder, підсвічування і динамічний індикатор терміновості 267
Мінімальна сума замовлення WooCommerce 259
Як додати виджет для валют на панель адміністратора WordPress 256
Залишити відповідь