Динамические блоки с ключевыми словами позволяют автоматически вставлять релевантный контент в записи и страницы WordPress, повышая SEO и улучшая пользовательский опыт. В этой статье рассмотрим, как создавать такие блоки с помощью PHP и Gutenberg, а также приведём примеры плагинов и кода для реализации.
Что такое динамические блоки и зачем они нужны в WordPress
Динамические блоки — это элементы контента, которые формируются на лету в зависимости от условий, например, ключевых слов на странице, категории или пользовательских параметров. Такой подход позволяет:
- Автоматически показывать релевантные ссылки, товары, статьи;
- Повысить вовлечённость за счёт персонализации;
- Упростить управление контентом без ручного редактирования;
- Улучшить SEO за счёт использования ключевых слов и релевантных вставок.
Для создания динамических блоков в WordPress можно использовать возможности Gutenberg с динамическими блоками на PHP, либо плагины с расширенным функционалом.
Создание динамического блока с ключевыми словами: пошаговое руководство
1. Регистрируем динамический блок
Для начала создадим простой динамический блок с названием wpbox-keyword-block, который будет выводить текст с ключевыми словами.
<?php
function wpbox_register_keyword_block() {
register_block_type('wpbox/keyword-block', array(
'render_callback' => 'wpbox_render_keyword_block',
'attributes' => array(
'keywords' => array(
'type' => 'string',
'default' => '',
),
),
));
}
add_action('init', 'wpbox_register_keyword_block');
function wpbox_render_keyword_block($attributes) {
$keywords = sanitize_text_field($attributes['keywords']);
if (empty($keywords)) {
return '<p>Введите ключевые слова для показа блока.</p>';
}
// Разбиваем ключевые слова в массив
$keyword_list = array_map('trim', explode(',', $keywords));
// Формируем HTML с ключевыми словами
$html = '<div class="wpbox-keyword-block"><h3>Релевантные ключевые слова:</h3><ul>';
foreach ($keyword_list as $word) {
$html .= '<li>' . esc_html($word) . '</li>';
}
$html .= '</ul></div>';
return $html;
}
?>Этот код регистрирует блок с атрибутом keywords, который можно указать в редакторе. Блок выведет список ключевых слов в виде HTML.
2. Добавляем поддержку редактора Gutenberg
Чтобы блок появился в редакторе, нужна соответствующая JS-часть. Создайте файл block.js с таким содержимым:
const { registerBlockType } = wp.blocks;
const { TextControl } = wp.components;
const { useBlockProps } = wp.blockEditor;
registerBlockType('wpbox/keyword-block', {
title: 'Динамический блок с ключевыми словами',
icon: 'tag',
category: 'widgets',
attributes: {
keywords: { type: 'string', default: '' },
},
edit({ attributes, setAttributes }) {
const blockProps = useBlockProps();
return (
<div {...blockProps}>
<TextControl
label="Введите ключевые слова через запятую"
value={attributes.keywords}
onChange={(keywords) => setAttributes({ keywords })}
/>
</div>
);
},
save() {
// Динамический блок — контент выводится на сервере
return null;
},
});Подключите этот скрипт через wp_enqueue_script в файле плагина или темы.
Примеры полезных плагинов для динамических блоков с ключевыми словами
1. Clearfy Pro
Clearfy Pro содержит инструменты для SEO оптимизации, в том числе динамические блоки с ключевыми словами. Его можно использовать для автоматического добавления релевантных ссылок и описаний на основе анализа ключевых фраз в тексте.
2. WPRemark
Плагин WPRemark позволяет создавать динамические виджеты и блоки с выводом контента по ключевым словам, что удобно для тематических сайтов и блогов с большим количеством категорий.
3. Expert Review
Expert Review поддерживает создание динамических блоков для вставки отзывов и рейтингов, которые можно привязать к ключевым словам или тегам записи, повышая доверие и релевантность.
Оптимизация и расширение функционала динамических блоков
Автоматический поиск ключевых слов в контенте
Чтобы не вводить ключевые слова вручную, можно реализовать функцию, которая будет автоматически извлекать ключевые слова из содержимого записи и передавать их в блок. Например, используя регулярные выражения или API для анализа текста:
function wpbox_extract_keywords_from_content($content) {
// Пример простой функции для выделения слов длиннее 5 букв
preg_match_all('/\b[а-яА-Яa-zA-Z]{6,}\b/u', strip_tags($content), $matches);
$words = array_count_values($matches[0]);
arsort($words);
$top_words = array_slice(array_keys($words), 0, 10);
return implode(', ', $top_words);
}Эту функцию можно использовать внутри wpbox_render_keyword_block для автоматической подстановки ключевых слов.
Кэширование результатов рендеринга блока
Чтобы не нагружать сервер повторным парсингом и обработкой, стоит добавить кэширование вывода блока с помощью Transients API:
function wpbox_render_keyword_block($attributes) {
$cache_key = 'wpbox_keyword_block_' . md5(serialize($attributes));
$cached = get_transient($cache_key);
if ($cached !== false) {
return $cached;
}
// Логика генерации HTML (как выше)
$keywords = sanitize_text_field($attributes['keywords']);
if (empty($keywords)) {
return '<p>Введите ключевые слова для показа блока.</p>';
}
$keyword_list = array_map('trim', explode(',', $keywords));
$html = '<div class="wpbox-keyword-block"><h3>Релевантные ключевые слова:</h3><ul>';
foreach ($keyword_list as $word) {
$html .= '<li>' . esc_html($word) . '</li>';
}
$html .= '</ul></div>';
set_transient($cache_key, $html, HOUR_IN_SECONDS);
return $html;
}Вывод и рекомендации по использованию динамических блоков с ключевыми словами
Динамические блоки — эффективный инструмент для автоматизации вывода тематического контента, улучшения SEO и повышения удобства редактирования. Правильная реализация с учётом безопасности, производительности и удобства настройки поможет сделать сайт более привлекательным для пользователей и поисковых систем.
Для расширения возможностей рекомендую ознакомиться с плагинами Clearfy Pro, WPRemark и Expert Review, которые предлагают готовые решения для динамических блоков и SEO оптимизации.
Подробнее о плагинах можно узнать на wpshop.ru.