Друкарня від WE.UA

Створення плагіну для автоматизації внутрішніх посилань у 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 дозволяє автоматично додавати внутрішні посилання до ключових слів у контенті постів і сторінок, що значно полегшує управління внутрішньою структурою сайту. Завдяки панелі налаштувань, користувачі можуть легко змінювати або додавати нові ключові слова без необхідності вносити зміни до коду.

Статті про вітчизняний бізнес та цікавих людей:

  • CRM keyCRM: зручне рішення для продажів, комунікацій і керування командою

    Успіх компанії залежить від того, наскільки швидко вона здатна опрацьовувати вхідні запити. Коли дані про клієнтів розпорошені між різними месенджерами, виникає хаос. CRM keyCRM пропонує вихід із цієї ситуації, об’єднуючи всі робочі процеси в єдиному зручному інтерфейсі.

    Теми цього довгочиту:

    Crm
  • Різниця між UX і UI, яку варто зрозуміти ще до першого заняття

    Більшість людей, які обирають професію UX чи UI, довго вважають це одним і тим самим. Насправді це два різних підходи до роботи над продуктом, і плутанина між ними гальмує розвиток ще на старті.

    Теми цього довгочиту:

    Ui-ux
  • Логіка змін: як SEO оптимізація прибирає бар’єри до зростання

    Багато компаній приходять у SEO з очікуванням швидкого ривка, але дійсний ефект починається там, де сайт перестають латати точково. Тому в центрі роботи стоїть не окрема дія, а послідовні зміни. Оптимізація сайту має прибирати системні перешкоди, а не маскувати їх новими текстами

    Теми цього довгочиту:

    Seo
  • Музичний футуризм: неймовірні інструменти XXI століття

    Еволюція музичних інструментів це один із найкрутіших проявів потужності людської уяви і потреби виразити себе через мистецтво. І хоча багато традиційних інструментів майже не змінилися за століття існування, інновації і пошук не зупиняються.

    Теми цього довгочиту:

    Музичні Інструменти
  • Стіл – всьому голова? Так, якщо його правильно підібрати

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

    Теми цього довгочиту:

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

91Довгочити
13.4KПерегляди
32Підписники
Підтримати
На Друкарні з 7 травня 2023

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

  • Ubuntu Server – czym jest i jakie są podstawowe komendy

    Ubuntu Server to jeden z najczęściej wybieranych systemów operacyjnych do obsługi serwerów VPS, aplikacji webowych, baz danych oraz środowisk DevOps.

    Теми цього довгочиту:

    Впс
  • CSS: Everything You Need to Know

    Cascading Style Sheets (CSS) are the backbone of modern web design. They transform plain HTML into engaging, responsive, and accessible experiences.

    Теми цього довгочиту:

    Css

Це також може зацікавити:

  • Що таке хороший сайт?

    Хороший сайт – це вебресурс, зручний як для відвідувача, так і для пошукової системи. Він відрізняється приємним дизайном, правильною навігацією. Хороший сайт працює та приносить прибуток.

    Теми цього довгочиту:

    Сайт Для Бізнесу
  • Hello, RabbitMQ на PHP

    Реалізуємо найпростіший приклад взаємодії з брокером повідомлень за 10 хвилин.

    Теми цього довгочиту:

    Rabbitmq

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

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

Це також може зацікавити:

  • Що таке хороший сайт?

    Хороший сайт – це вебресурс, зручний як для відвідувача, так і для пошукової системи. Він відрізняється приємним дизайном, правильною навігацією. Хороший сайт працює та приносить прибуток.

    Теми цього довгочиту:

    Сайт Для Бізнесу
  • Hello, RabbitMQ на PHP

    Реалізуємо найпростіший приклад взаємодії з брокером повідомлень за 10 хвилин.

    Теми цього довгочиту:

    Rabbitmq