Створення плагіну для автоматизації внутрішніх посилань у WordPress

Внутрішні посилання є важливою SEO-стратегією, що покращує структуру сайту, полегшує навігацію та допомагає розподіляти авторитет сторінок по всьому сайту. Однак, ручне додавання внутрішніх посилань до ключових слів у постах може бути трудомістким процесом та призводити до помилок. Плагін, який автоматизує цей процес, може значно зекономити час і забезпечити послідовність у роботі.

У цій статті ми створимо плагін для WordPress, який автоматично додаватиме внутрішні посилання до визначених ключових слів у постах та сторінках. Ми детально розглянемо процес створення плагіна, включаючи пошук певних ключових слів і додавання посилань на відповідні сторінки сайту.

Основні функції плагіна:

  • Можливість визначити список ключових слів і відповідних URL.

  • Автоматичне додавання внутрішніх посилань до ключових слів у контенті постів.

  • Гнучкість у додаванні або оновленні ключових слів і посилань через адмін-панель WordPress.

Давайте розглянемо поетапний процес створення цього плагіна.

Читайте також: HTML теги та атрибути: як вони працюють і що потрібно знати https://drukarnia.com.ua/articles/html-tegi-ta-atributi-yak-voni-pracyuyut-i-sho-potribno-znati-9FSYK

Крок 1: Налаштування плагіна

Спочатку створимо папку для плагіна в каталозі wp-content/plugins/ вашої інсталяції WordPress. Назвемо папку auto-internal-links.

Всередині цієї папки створіть новий PHP-файл під назвою auto-internal-links.php. Це буде основний файл нашого плагіна.

<?php
/*
Назва плагіна: Auto Internal Links
URI плагіна: https://example.com
Опис: Автоматично додає внутрішні посилання до ключових слів у постах чи сторінках.
Версія: 1.0
Автор: Ваше Ім'я
URI автора: https://example.com
*/

// Перевірка, чи запущено код в контексті WordPress.
if (!defined('ABSPATH')) {
    exit;
}

// Підключення до фільтра 'the_content' для обробки контенту постів.
add_filter('the_content', 'auto_add_internal_links');

function auto_add_internal_links($content) {
    // Список ключових слів та їхніх відповідних внутрішніх посилань.
    $keywords = array(
        'WordPress' => 'https://yourwebsite.com/wordpress-guide',
        'SEO' => 'https://yourwebsite.com/seo-basics',
        'PHP' => 'https://yourwebsite.com/php-tutorial',
    );
    
    // Проходимо через кожне ключове слово та замінюємо його на посилання.
    foreach ($keywords as $keyword => $url) {
        // Перевіряємо, чи ключове слово вже не містить посилання.
        if (strpos($content, '<a href="' . $url . '">' . $keyword . '</a>') === false) {
            $content = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/', '<a href="' . $url . '">' . $keyword . '</a>', $content, 1);
        }
    }

    return $content;
}
?>

Ця базова версія плагіна підключається до фільтра WordPress the_content, який обробляє контент постів і сторінок перед відображенням. Функція auto_add_internal_links перевіряє наявність ключових слів і замінює їх на внутрішні посилання до відповідних URL.

Крок 2: Додавання гнучкості для управління ключовими словами

Щоб зробити плагін більш зручним для користувачів, ми додамо панель адміністратора, де можна буде керувати списком ключових слів та їх відповідними URL. Це потребує створення сторінки налаштувань в адмін-панелі WordPress.

Спочатку модифікуємо плагін, щоб додати пункт меню до адмін-панелі:

// Підключаємо меню адміністратора.
add_action('admin_menu', 'auto_internal_links_menu');

function auto_internal_links_menu() {
    add_menu_page(
        'Auto Internal Links',    // Назва сторінки
        'Internal Links',         // Назва в меню
        'manage_options',         // Можливості
        'auto-internal-links',    // Слаг меню
        'auto_internal_links_page' // Функція для відображення вмісту сторінки
    );
}

function auto_internal_links_page() {
    ?>
    <div class="wrap">
        <h1>Управління автоматичними внутрішніми посиланнями</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('auto_internal_links_settings_group');
            do_settings_sections('auto-internal-links');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

Тепер реалізуємо налаштування, щоб зберігати ключові слова та URL у базі даних WordPress. Також додамо поля вводу для користувачів для управління цими налаштуваннями.

// Підключаємо налаштування.
add_action('admin_init', 'auto_internal_links_settings');

function auto_internal_links_settings() {
    register_setting('auto_internal_links_settings_group', 'auto_internal_links_keywords');

    add_settings_section(
        'auto_internal_links_main_section',
        'Список ключових слів і URL',
        'auto_internal_links_section_text',
        'auto-internal-links'
    );

    add_settings_field(
        'auto_internal_links_keywords',
        'Ключові слова і URL (формат: ключове_слово|url)',
        'auto_internal_links_keywords_field',
        'auto-internal-links',
        'auto_internal_links_main_section'
    );
}

function auto_internal_links_section_text() {
    echo 'Введіть ваші ключові слова та відповідні URL, розділені вертикальною рискою (|). Приклад: WordPress|https://yourwebsite.com/wordpress-guide';
}

function auto_internal_links_keywords_field() {
    $keywords = get_option('auto_internal_links_keywords', '');
    echo '<textarea name="auto_internal_links_keywords" rows="10" cols="50">' . esc_textarea($keywords) . '</textarea>';
}

У цьому коді ми створили сторінку налаштувань, де користувачі можуть вводити ключові слова та URL у форматі ключове_слово|url. Ця інформація буде зберігатися в таблиці опцій WordPress, що дозволяє легко оновлювати дані без необхідності змінювати код.

Крок 3: Оновлення логіки вставки посилань

Тепер, коли користувачі можуть вводити свої ключові слова та URL, ми повинні змінити функцію auto_add_internal_links, щоб отримувати ключові слова з налаштувань, збережених у базі даних.

function auto_add_internal_links($content) {
    // Отримуємо збережені ключові слова з таблиці опцій.
    $keywords = get_option('auto_internal_links_keywords', '');
    
    // Перетворюємо список ключових слів на асоціативний масив.
    $keywords_array = array();
    $lines = explode("\n", $keywords);
    foreach ($lines as $line) {
        list($keyword, $url) = explode('|', trim($line));
        $keywords_array[$keyword] = $url;
    }

    // Проходимо через кожне ключове слово та замінюємо його на посилання.
    foreach ($keywords_array as $keyword => $url) {
        if (strpos($content, '<a href="' . $url . '">' . $keyword . '</a>') === false) {
            $content = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/', '<a href="' . $url . '">' . $keyword . '</a>', $content, 1);
        }
    }

    return $content;
}

Це оновлення дозволяє плагіну отримувати ключові слова з бази даних і автоматично вставляти посилання в контент поста на основі ключових слів, визначених користувачем.

Крок 4: Повний код плагіна

Ось повний код плагіна auto-internal-links.php:

<?php
/*
Назва плагіна: Auto Internal Links
URI плагіна: https://example.com
Опис: Автоматично додає внутрішні посилання до ключових слів у постах чи сторінках.
Версія: 1.0
Автор: Ваше Ім'я
URI автора: https://example.com
*/

if (!defined('ABSPATH')) {
    exit;
}

add_filter('the_content', 'auto_add_internal_links');

function auto_add_internal_links($content) {
    $keywords = get_option('auto_internal_links_keywords', '');
    $keywords_array = array();
    $lines = explode("\n", $keywords);
    foreach ($lines as $line) {
        list($keyword, $url) = explode('|', trim($line));
        $keywords_array[$keyword] = $url;
    }

    foreach ($keywords_array as $keyword => $url) {
        if (strpos($content, '<a href="' . $url . '">' . $keyword . '</a>') === false) {
            $content = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/', '<a href="' . $url . '">' . $keyword . '</a>', $content, 1);
        }
    }

    return $content;
}

add_action('admin_menu', 'auto_internal_links_menu');

function auto_internal_links_menu() {
    add_menu_page(
        'Auto Internal Links',
        'Internal Links',
        'manage_options',
        'auto-internal-links',
        'auto_internal_links_page'
    );
}

function auto_internal_links_page() {
    ?>
    <div class="wrap">
        <h1>Управління автоматичними внутрішніми посиланнями</h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('auto_internal_links_settings_group');
            do_settings_sections('auto-internal-links');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

add_action('admin_init', 'auto_internal_links_settings');

function auto_internal_links_settings() {
    register_setting('auto_internal_links_settings_group', 'auto_internal_links_keywords');
    add_settings_section(
        'auto_internal_links_main_section',
        'Список ключових слів і URL',
        'auto_internal_links_section_text',
        'auto-internal-links'
    );
    add_settings_field(
        'auto_internal_links_keywords',
        'Ключові слова і URL (формат: ключове_слово|url)',
        'auto_internal_links_keywords_field',
        'auto-internal-links',
        'auto_internal_links_main_section'
    );
}

function auto_internal_links_section_text() {
    echo 'Введіть ключові слова і URL у форматі: ключове_слово|url';
}

function auto_internal_links_keywords_field() {
    $keywords = get_option('auto_internal_links_keywords', '');
    echo '<textarea name="auto_internal_links_keywords" rows="10" cols="50">' . esc_textarea($keywords) . '</textarea>';
}
?>

Висновок

Цей плагін для WordPress дозволяє автоматично додавати внутрішні посилання до ключових слів у контенті постів і сторінок, що значно полегшує управління внутрішньою структурою сайту. Завдяки панелі налаштувань, користувачі можуть легко змінювати або додавати нові ключові слова без необхідності вносити зміни до коду.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Volodymyr Zhyliaev
Volodymyr Zhyliaev@digitalowltop

6.8KПрочитань
64Автори
24Читачі
Підтримати
На Друкарні з 7 травня

Більше від автора

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається