Плагин анализа ключевых слов на странице

ACg8ocJXt6wMqyVZbGSLxmn6Gok3oLBwd7MMkF4GP0ntA GqK4gUwws64 c mo

Создание плагина WordPress для анализа и добавления ключевых слов

Понимание задачи

Цель плагина — автоматически анализировать контент страниц и записей WordPress, выявлять наиболее часто встречающиеся слова и добавлять их в начало страницы или записи с соответствующей пометкой.

Структура плагина

Плагин для WordPress состоит из нескольких файлов:

  • main.php — главный файл плагина, содержащий метаданные и функции.
  • functions.php — файл с основными функциями плагина.

Код плагина

main.php

PHP
<?php
/*
Plugin Name:  Ключевые слова в начале страницы
Description:  Анализирует контент и добавляет самые частые слова в начало страницы
Version:     1.0
Author:      Ваше имя
Author URI:  Ваш сайт
*/

// Активация плагина
register_activation_hook( __FILE__, 'my_plugin_activate' );

// Деактивация плагина
register_deactivation_hook( __FILE__, 'my_plugin_deactivate' );

// Загрузка функций плагина
require_once( plugin_dir_path( __FILE__ ) . 'functions.php' );

// Функции активации и деактивации (по желанию)
function my_plugin_activate() {
    // Код, выполняемый при активации плагина
}

function my_plugin_deactivate() {
    // Код, выполняемый при деактивации плагина
}

functions.php

PHP
<?php
// Функция для анализа текста и получения самых частых слов
function get_most_frequent_words($content) {
    $words = str_word_count(strip_tags($content), 1);
    $counts = array_count_values($words);
    arsort($counts);
    return array_slice(array_keys($counts), 0, 5); // Вернем 5 самых частых слов
}

// Фильтр для добавления ключевых слов в начало контента
function add_keywords_to_content($content) {
    if (is_singular()) { // Проверяем, что это страница или запись
        $keywords = get_most_frequent_words($content);
        $keywords_string = implode(', ', $keywords);
        return '<p><strong>На странице наиболее часто встречается:</strong> ' . $keywords_string . '</p>' . $content;
    }
    return $content;
}
add_filter('the_content', 'add_keywords_to_content');

Объяснение кода

  1. Анализ текста: Функция get_most_frequent_words принимает текст в качестве аргумента, удаляет теги HTML, разбивает текст на слова и подсчитывает частоту каждого слова.
  2. Добавление ключевых слов: Фильтр add_keywords_to_content проверяет, является ли текущая страница или запись одиночной (не архив, категория и т.д.). Если это так, то он получает самые частые слова из контента и добавляет их в начало страницы.

Установка плагина

  1. Создайте папку с названием плагина в директории wp-content/plugins вашего WordPress сайта.
  2. Поместите файлы main.php и functions.php в эту папку.
  3. Активируйте плагин в админке WordPress.

Дополнительные возможности

  • Настройка количества слов: Можно добавить параметр в функцию get_most_frequent_words для настройки количества возвращаемых слов.
  • Исключение стоп-слов: Создать массив стоп-слов (например, «и», «в», «на») и исключить их из анализа.
  • Отображение ключевых слов в мета-тегах: Добавить ключевые слова в мета-тег keywords для улучшения SEO.
  • Использование внешних библиотек: Для более сложного анализа текста можно использовать внешние библиотеки, такие как NLTK.

Важно: Этот плагин предоставляет базовую функциональность. Для более продвинутого анализа текста и SEO рекомендуется использовать специализированные плагины или сервисы.

Предупреждение

  • Переоптимизация: Чрезмерное использование ключевых слов может привести к наложению санкций со стороны поисковых систем.
  • Ложная позитивность: Некоторые слова могут встречаться часто, но не быть релевантными для страницы.
  • Изменения в алгоритмах поисковых систем: Алгоритмы поиска постоянно меняются, поэтому эффективность этого метода может со временем снизиться.

Перед использованием плагина на реальном сайте рекомендуется тщательно протестировать его на тестовом сайте.

Этот код является отправной точкой для создания более сложного и функционального плагина.

Анализ кода и предложения по улучшению

Понимание задачи:

Вам необходимо модифицировать плагин так, чтобы он:

  • Анализировал видимый текст: То есть текст, который отображается на передней части сайта, а не исходный код.
  • Очищал текст: Удалял из текста все лишние символы, такие как знаки препинания, предлоги, местоимения и т.д.
  • Определял язык: Оставлял только слова на русском, английском и испанском языках.
  • Не использовал внешние библиотеки: Все функции должны быть реализованы внутри плагина.
  • Был совместим с любыми темами: Не должен конфликтовать с другими плагинами или темами.

Предлагаемые изменения:

1. Очистка текста

Нужно улучшить функцию get_most_frequent_words. Для более тщательной очистки текста можно использовать регулярные выражения. Например:

PHP
function get_most_frequent_words($content) {
    // Удаляем HTML-теги и специальные символы
    $content = strip_tags($content);
    // Оставляем только буквы и цифры
    $content = preg_replace('/[^a-zA-ZА-Яа-я0-9]+/', ' ', $content);
    // Приводим к нижнему регистру
    $content = strtolower($content);
    // Разделяем на слова
    $words = explode(' ', $content);

    // Фильтруем слова по языку (предполагается, что у вас есть список стоп-слов)
    $stop_words = array_merge(
        require 'stop_words_ru.php',
        require 'stop_words_en.php',
        require 'stop_words_es.php'
    );
    $words = array_diff($words, $stop_words);

    // Считаем частоту слов
    $counts = array_count_values($words);
    arsort($counts);
    return array_slice(array_keys($counts), 0, 5);
}

После тестирования:
1) фильтр стоп слов не работает
2) Работает версия ниже только для английского языка

<?php
// Функция для анализа текста и получения самых частых слов
function get_most_frequent_words($content) {
// Удаляем HTML-теги и специальные символы
$content = strip_tags($content);
// Оставляем только буквы и цифры
$content = preg_replace(‘/[^a-zA-ZА-Яа-я0-9]+/’, ‘ ‘, $content);
// Приводим к нижнему регистру
$content = strtolower($content);
// Разделяем на слова
$words = explode(‘ ‘, $content);
$words = str_word_count(strip_tags($content), 1);
$counts = array_count_values($words);
arsort($counts);
return array_slice(array_keys($counts), 0, 10); // Вернем 10 самых частых слов

// Фильтруем слова по языку (предполагается, что у вас есть список стоп-слов)
$stop_words = array_merge(
require ‘stop_words_ru.php’,
require ‘stop_words_en.php’,
require ‘stop_words_es.php’
);
$words = array_diff($words, $stop_words);
}

// Фильтр для добавления ключевых слов в начало контента
function add_keywords_to_content($content) {
if (is_singular()) { // Проверяем, что это страница или запись
$keywords = get_most_frequent_words($content);
$keywords_string = implode(‘, ‘, $keywords);
return ‘<p><strong>На странице наиболее часто встречается:</strong> ‘ . $keywords_string . ‘</p>’ . $content;
}
return $content;
}
add_filter(‘the_content’, ‘add_keywords_to_content’);

Добавить комментарий

17 − восемь =

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять