Учебники

Как добавить собственный RSS-канал в панель управления WordPress

Как добавить собственный RSS-канал в панель управления WordPress

Интернет полон отличных ресурсов, и сложно все просмотреть. Конечно, есть Twitter, чтобы следить за тенденциями, или программное обеспечение для чтения RSS, но вы, как и я, очень заняты, иногда раздражает, когда одновременно открыто 20 программ. Вот почему я решил использовать свою панель управления WordPress в качестве глобальной платформы для быстрого доступа к этим каналам. Пример, которым я хочу поделиться сегодня, – это создание настраиваемого метабокса RSS на панели инструментов WordPress.

Вот окончательный результат того, что мы собираемся создать:

Как добавить собственный RSS-канал в панель управления WordPress

Шаг 1. Плагин

Чтобы добавить этот метабокс, нам нужно создать плагин. Итак, просто создайте новую папку с именем «my-dashboard-metaboxes» в wp-content / plugins / и в новой папке создайте файл с именем my-dashboard-metaboxes.php. Этот файл будет основным файлом плагина. Откройте его в главном редакторе. Приведенный ниже код – это код, который будет генерировать плагин. Здесь нет ничего сложного:

<?php /* Plugin Name: My Dashboard Metaboxes Plugin URL: http://remicorson.com/ Description: Adds custom meta boxes on the main admin dashboard Version: 0.1 Author: Remi Corson Author URI: http://remicorson.com Contributors: corsonr Text Domain: rc_mdm */

Шаг 2: Регистрация Metabox

Теперь, когда у нас есть пустой плагин (я имею в виду плагин, который ничего не делает), нам нужно зарегистрировать как минимум метабокс, который будет отображаться на панели инструментов WordPress. Для этого мы должны создать новую функцию, которая будет подключать хук «wp_dashboard_setup ». Назовем эту функцию «rc_mdm_register_widgets()». Внутри этой функции нам нужно сообщить WordPress, что мы хотим добавить новый метабокс, и это цель функции «wp_add_dashboard_widget () ». Эта функция принимает 4 параметра:

1 – $ widget_id (integer) (обязательно) идентификационный ярлык для вашего виджета. Он будет использоваться как его класс css и его ключ в массиве виджетов.
По умолчанию: Нет

2 – $ widget_name (string) (обязательно) это имя, которое ваш виджет будет отображать в заголовке.
По умолчанию: Нет

3 – $ callback (строка) (обязательно) Имя создаваемой вами функции, которая будет отображать фактическое содержимое вашего виджета.
По умолчанию: Нет

4 – $ control_callback (строка) (необязательно) Имя создаваемой вами функции, которая будет обрабатывать отправку форм параметров (конфигурации) виджета, а также будет отображать элементы формы.

Здесь важен третий параметр, он определяет функции, которые будут загружены в метабокс. В этом примере это называется «rc_mdm_create_my_rss_box ()».

/** * Register all dashboard metaboxes * * @access public * @since 1.0 * @return void */ function rc_mdm_register_widgets() { global $wp_meta_boxes; wp_add_dashboard_widget('widget_freelanceswitch', __('My RSS Feeds', 'rc_mdm'), 'rc_mdm_create_my_rss_box'); } add_action('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.

Вот код:

/** * Creates the RSS metabox * * @access public * @since 1.0 * @return void */ function rc_mdm_create_my_rss_box() { // Get RSS Feed(s) include_once(ABSPATH. WPINC. '/feed.php'); // My feeds list (add your own RSS feeds urls) $my_feeds = array( 'http://feeds.feedburner.com/FSAllJobs', 'http://www.wphired.com/feed/?post_type=job_listing' ); // Loop through Feeds foreach ($my_feeds as $feed): // Get a SimplePie feed object from the specified feed source. $rss = fetch_feed( $feed ); if (!is_wp_error( $rss) ): // Checks that the object is created correctly // Figure out how many total items there are, and choose a limit $maxitems = $rss->get_item_quantity( 3 ); // Build an array of all the items, starting with element 0 (first element). $rss_items = $rss->get_items( 0, $maxitems ); // Get RSS title $rss_title = '<a href="'.$rss->get_permalink().'" target="_blank">'.strtoupper( $rss->get_title() ).'</a>'; endif; // Display the container echo '<div class="rss-widget">'; echo '<strong>'.$rss_title.'</strong>'; echo '<hr style="border: 0; background-color: #DFDFDF; height: 1px;">'; // Starts items listing within <ul> tag echo '<ul>'; // Check items if ($maxitems == 0) { echo '<li>'.__( 'No item', 'rc_mdm').'.</li>'; } else { // Loop through each feed item and display each item as a hyperlink. foreach ($rss_items as $item ): // Uncomment line below to display non human date //$item_date = $item->get_date( get_option('date_format').' @ '.get_option('time_format') ); // Get human date (comment if you want to use non human date) $item_date = human_time_diff( $item->get_date('U'), current_time('timestamp')).' '.__( 'ago', 'rc_mdm' ); // Start displaying item content within a <li> tag echo '<li>'; // create item link echo '<a href="'.esc_url( $item->get_permalink() ).'" title="'.$item_date.'">'; // Get item title echo esc_html( $item->get_title() ); echo '</a>'; // Display date echo ' <span class="rss-date">'.$item_date.'</span><br />'; // Get item content $content = $item->get_content(); // Shorten content $content = wp_html_excerpt($content, 120). ' [...]'; // Display content echo $content; // End <li> tag echo '</li>'; endforeach; } // End <ul> tag echo '</ul></div>'; endforeach; // End foreach feed }

В строке 15 есть массив, в который вы можете поместить столько каналов, сколько захотите. Вы также можете определить количество элементов каждого канала для отображения в строке 27. Наконец, в строках 50 и 54 вы можете выбрать отображение человеческой даты или обычной даты. Тебе решать.

Заключение

Итак, мы создали простой метабокс, но теперь у вас есть основы для создания собственных метабоксов с вашим собственным контентом. Вы также можете удалить метабоксы WordPress по умолчанию, и, чтобы иметь полное представление об API виджетов приборной панели, я рекомендую вам, как всегда, взглянуть на кодекс.

Источник записи: https://www.wpexplorer.com

Похожие сообщения
Учебники

Добавление отвлекающего чтения в WordPress

Учебники

Как исключить таксономию из типа сообщения WordPress

Учебники

Добавление пользовательских QuickTags WordPress

Учебники

Как добавить встроенную контентную рекламу в WordPress