Як додати користувацький RSS-канал на інформаційну панель WordPress

Додайте власну RSS-стрічку на інформаційну панель WordPress

Інтернет наповнений чудовими ресурсами, і важко подивитися на все. Звичайно, у Твіттері слідкувати за тенденціями або програмним забезпеченням для читання RSS, але ти, як я дуже зайнятий, іноді дратує, що одночасно відкриється 20 програмних засобів. Ось чому я вирішив використовувати мою інформаційну панель WordPress як глобальну платформу для швидкого доступу до цих каналів. Приклад, яким я хочу сьогодні поділитися, – це як створити користувацький метабокс RSS на інформаційній панелі WordPress.


Ось кінцевий результат того, що ми збираємось створити:

add-a-custom-rss-dashboard-metabox

Крок 1: Плагін

Щоб додати цей метабокс, нам потрібно створити плагін. Отже, просто створіть нову папку під назвою “my-dashboard-metaboxes” у wp-content / plugins /, а в новій папці створіть файл під назвою my-dashboard-metaboxes.php. Цей файл буде основним файлом плагінів. Відкрийте його у своєму головному редакторі. Код нижче – це код, який буде генерувати плагін. Тут нічого складного немає:

Крок 2: Реєстрація Metabox

Тепер, коли у нас порожній плагін (я маю на увазі плагін, який нічого не робить), нам потрібно зареєструвати принаймні метабокс для відображення на інформаційній панелі WordPress. Для цього нам потрібно створити нову функцію, яка причепить до "wp_dashboard_setupГачок. Давайте назвемо цю функцію "rc_mdm_register_widgets ()". Всередині цієї функції нам потрібно сказати WordPress, що ми хочемо додати нове метабокс, і це є метою "wp_add_dashboard_widget ()”Функція. Ця функція приймає 4 параметри:

1 - $ widget_id (ціле число) (обов’язково) ідентифікаційний кулик для вашого віджета. Це буде використовуватися як його клас css та його ключ у масиві віджетів.
За замовчуванням: Ні

2 - ім'я $ widget_name (рядок) (обов'язково) - це ім'я, яке ваш віджет відображатиметься в заголовку.
За замовчуванням: Ні

3 - $ зворотний виклик (рядок) (обов'язково) Назва створеної вами функції, яка відображатиме фактичний вміст віджета.
За замовчуванням: Ні

4 - $ control_callback (рядок) (необов'язково) Назва створеної вами функції, яка буде обробляти подання форм параметрів віджетів (конфігурації), а також відображатиме елементи форми.

Тут важливо третій параметр, саме той визначає функції, які будуть завантажені в метаполе. У цьому прикладі він називається "rc_mdm_create_my_rss_box ()".

/ **
* Зареєструйте всі метабокси панелі інструментів
*
* @ доступ громадськості
* @since 1.0
* @return void
* /

функція rc_mdm_register_widgets () {
глобальні $ wp_meta_boxes;

wp_add_dashboard_widget ('widget_freelanceswitch', __ ('Мої RSS-канали', 'rc_mdm'), 'rc_mdm_create_my_rss_box');
}
добавлення ('wp_dashboard_setup', 'rc_mdm_register_widgets');

Крок 3: Вміст Metabox

Якщо ви активуєте плагін і переходите на свою інформаційну панель WordPress, ви повинні побачити нове порожнє метаполе. Зараз нам потрібно заповнити його зміст. Важливі речі цієї функції - включити вбудований у WordPress файл "feed.php", щоб дозволено використовувати функцію "fetch_feed ()". Зверніть увагу, що ми використовуємо "fetch_feed ()", оскільки "fetch_rss ()", "get_rss ()" та "wp_rss ()" застаріли. Одного разу я включив усі коментарі до коду безпосередньо, але хотів би звернути вашу увагу на деякі приємні функції, які я використовую всередині функції метабокса.

Перш за все, існує "fetch_feed ()”Функція. Цей використовується для отримання та розбору вмісту каналів. Ця функція використовує Клас SimplePie, тож ви можете скористатися майже всіма функціями, що входять до нього.

Потім у нас є функція "human_time_diff ()", яка використовується для відображення часу як "human_time_diff ()", Наприклад, щоб відобразити щось на кшталт" 2 години тому "," 4 дні тому "тощо), це функція WordPress.

І нарешті у нас є "wp_html_excerpt ()", Щоб скоротити вміст кожного каналу.

Усі інші функції добре знають функції WordPress або входять до класу Simple Pie.

Ось код:

/ **
* Створює метаполе RSS
*
* @ доступ громадськості
* @since 1.0
* @return void
* /

функція rc_mdm_create_my_rss_box () {

// Отримати RSS-стрічки
include_once (ABSPATH. WPINC. '/feed.php');

// Мій список каналів (додайте власні URL-адреси каналів RSS)
$ my_feeds = масив (
"http://feeds.feedburner.com/FSAllJobs",
'http://www.wphired.com/feed/?post_type=job_listing'
);

// Прокручування каналів
foreach ($ my_feeds як $ feed):

// Отримати об’єкт каналу SimplePie із зазначеного джерела каналу.
$ rss = fetch_feed ($ канал);
if (! is_wp_error ($ rss)): // Перевіряє, чи об’єкт створено правильно
// З'ясуйте, скільки всього предметів, і виберіть обмеження
$ maxitems = $ rss-> get_item_quantity (3);

// Побудувати масив усіх елементів, починаючи з елемента 0 (перший елемент).
$ rss_items = $ rss-> get_items (0, $ maxitems);

// Отримати заголовок RSS
$ rss_title = 'get_permalink (). '"target =" _ blank ">'. strtoupper ($ rss-> get_title ()). '';
ендіф;

// Відобразити контейнер
відлуння '
'; відлуння ''. $ rss_title.''; відлуння '
'; // Починає список елементів у межах
    тег відлуння '
      '; // Перевірка предметів якщо ($ maxitems == 0) { відлуння '
    • '.__ (' Немає елемента ',' rc_mdm ').'.
    • '; } else { // Проведіть цикл через кожну позицію та відображайте кожен елемент як гіперпосилання. foreach ($ rss_items як $ item): // Рядок без коментарів, щоб відобразити дату, що не стосується людини // $ item_date = $ item-> get_date (get_option ('date_format'). '@' .get_option ('time_format')); // Отримати людську дату (коментуйте, якщо ви хочете використовувати нелюдську дату) $ item_date = human_time_diff ($ item-> get_date ('U'), current_time ('timetamp')). ' '.__ (' тому ',' rc_mdm '); // Почніть відображати вміст елемента в межах
    • тег відлуння '
    • '; // створити посилання на предмет відлуння 'get_permalink ()). '"title ="'. $ item_date. '">'; // Отримати назву елемента echo esc_html ($ item-> get_title ()); відлуння ''; // Відображення дати відлуння ' '. $ item_date.'
      '; // Отримати вміст предмета $ content = $ item-> get_content (); // Скоротити зміст $ content = wp_html_excerpt ($ content, 120). '[...]'; // Відображення вмісту ехо $ вміст; // Кінець
    • тег відлуння '
    • '; кінцевий проповідь; } // Кінець
        тег відлуння '
'; кінцевий проповідь; // Закінчити подачу форекса }

У рядку 15 є масив, куди ви можете помістити стільки каналів, скільки вам потрібно. Ви також можете визначити кількість кожного каналу, який відображатиметься у рядку 27. Нарешті, у рядках 50 та 54 ви можете вибрати відображення людської дати або звичайної дати. Тобі вирішувати.

Висновок

Гаразд, ми створили простий метабокс, але тепер у вас є основи, щоб створити власні метаполе з власним вмістом. Ви також можете видалити метабокси WordPress за замовчуванням та мати повне розуміння API віджетів панелі інструментів, Я закликаю вас, як завжди, подивитися на це кодекс.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map