Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
Теми
Уроки
Хакі

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

| Завантажити вихідні |

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

1. Створення плагіна

Створюємо нову папку в директорії плагінів (wp-content/plugins) і помістимо до неї файл dashboard_widgets.php.

<?php
/*
Plugin Name: Wptuts+ Dashboard Widgets
Plugin URI:
Description: Create custom dashboard widgets
Version: 0.1
Author: Guillaume Voisin
Author URI: http://wp.tutsplus.com/author/guillaumevoisin
License: GPL2
*/

Збережіть файл, і він буде доступний для активації на сторінці плагінів.

А тепер займемося написанням класу для керування всіма потрібними нам функціями.

class Wptuts_Dashboard_Widgets {
 
    function __construct() {
        add_action( 'wp_dashboard_setup', array( $this, 'remove_dashboard_widgets' ) );
        add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widgets' ) );
    }
 
    function remove_dashboard_widgets() {
 
    }
 
    function add_dashboard_widgets() {
 
    }
 
}
 
$wdw = new Wptuts_Dashboard_Widgets();

Для цієї мети будемо використовувати wp_dashboard_setup (Для зв'язку двох функцій):

  • remove_dashboard_widgets буде застосовуватися для видалення віджетів, доступних за замовчуванням.
  • add_dashboard_widgets ми використовуємо, щоб додати власні віджети.

Зверніть увагу: ми пов'язуємо дві функції наступним чином: array( $this, 'remove_dashboard_widgets' ). Оскільки обидві функції входять до 1 клас, то треба вказати WordPress, яка з функція якого класу належить.

2. Визначаємо список віджетів

Створимо ще один файл під назвою custom_widgets.php. Він міститиме визначення наших віджетів (щоб видалити стандартні віджети та додати наші власні).

Спочатку виберемо, які віджети ми хочемо видалити. По суті, це - будь-який масив з ідентифікаторами віджетів, що видаляються + інформація про те, де їх видалити (сторінка и контекст).

Для цього скористаємося функцією remove_meta_box(), оскільки віджети в панелі управління працюють як мета-бокси. Ця функція має 3 аргументи:

  • ID
  • сторінка - де ми можемо знайти цей віджет (консоль / пост / вкладення / ...)
  • Контекст — у якій області розташований віджет (у звичайній / розширеній / бічній частині сайту)

А тепер додамо дані параметри:

$remove_defaults_widgets = array(
    'dashboard_incoming_links' => array(
        'page'    => 'dashboard',
        'context' => 'normal'
    ),
    'dashboard_right_now' => array(
        'page'    => 'dashboard',
        'context' => 'normal'
    ),
    'dashboard_recent_drafts' => array(
        'page'    => 'dashboard',
        'context' => 'side'
    ),
    'dashboard_quick_press' => array(
        'page'    => 'dashboard',
        'context' => 'side'
    ),
    'dashboard_plugins' => array(
        'page'    => 'dashboard',
        'context' => 'normal'
    ),
    'dashboard_primary' => array(
        'page'    => 'dashboard',
        'context' => 'side'
    ),
    'dashboard_secondary' => array(
        'page'    => 'dashboard',
        'context' => 'side'
    ),
    'dashboard_recent_comments' => array(
        'page'    => 'dashboard',
        'context' => 'normal'
    )
);

Потім визначимося, які з віджетів, що настроюються, ми хочемо додати. Для додавання настроюваних WordPress-віджетів потрібно використовувати вбудовану функцію wp_add_dashboard_widget(). Має кілька аргументів:

  • ID
  • назва - Заголовок віджету.
  • Callback — функція, яка відповідає за вміст віджету.

Давайте визначимо ці параметри та налаштуємо наш віджет: створюємо дуже простий віджет на панелі, який показуватиме останні пости, опубліковані недавніми користувачами.

$custom_dashboard_widgets = array(
    'my-dashboard-widget' => array(
        'title' => 'My Dashboard Widget',
        'callback' => 'dashboardWidgetContent'
    )
);

Додаємо функцію для керування контентом віджету:

function dashboardWidgetContent() {
    $user = wp_get_current_user();
    echo "Hello <strong>" . $user->user_login . "</strong>, this is your custom widget. You can, for instance, list all the posts you've published:";
 
    $r = new WP_Query( apply_filters( 'widget_posts_args', array(
        'posts_per_page' => 10,
        'post_status' => 'publish',
        'author' => $user->ID
    ) ) );
 
    if ( $r->have_posts() ) :
    ?>
 
    <?php
    endif;
}

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

3. Трохи магії

Повернемося до класу, який ми робили на першому кроці. Для початку включимо визначення для наших віджетів, щоб вони були доступні для нашого класу. Для цього треба внести наступний рядок коду у файл dashboard_widgets.php:

require_once( plugin_dir_path( __FILE__ ) . '/custom_widgets.php' );

Як видалити віджети

function remove_dashboard_widgets() {
    global $remove_defaults_widgets;
 
    foreach ( $remove_defaults_widgets as $wigdet_id => $options ) {
        remove_meta_box( $wigdet_id, $options['page'], $options['context'] );
    }
}

Для видалення віджетів просто введемо цикл для масиву $remove_defaults_widgets і застосуємо функцію remove_meta_box з окремими параметрами для кожного віджету.

Переконайтеся, що увімкнули глобальні значення для змінних $remove_defaults_widgets, інакше ви не зможете цими змінними скористатися.

Як додати віджети

function add_dashboard_widgets() {
    global $custom_dashboard_widgets;
 
    foreach ( $custom_dashboard_widgets as $widget_id => $options ) {
        wp_add_dashboard_widget(
            $widget_id,
            $options['title'],
            $options['callback']
        );
    }
}

Повторимо той же процес, що був описаний вище, але застосуємо до віджетів функцію wp_add_dashboard_widget.

Зберігаємо результат і повертаємося в Панель управління, має вийти щось на кшталт такого:

Як створити віджети, що настроюються, для консолі WordPress

Висновок

Тепер ви можете додавати будь-який віджет у свою Панель керування WordPress шляхом включення опцій та функцій зворотного дзвінка у файлі custom_widgets.php.

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

Якщо ви маєте власні думки щодо роботи з віджетами в такому ключі, не забудьте поділитися своїми зауваженнями та міркуваннями в коментарях до цієї посади (особливо якщо у вас є досвід налаштування Панелі управління сайтом на основі віджетів для сторонніх користувачів / клієнтів).

Джерело: WP.tutsplus.com
inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, що спеціалізується на створенні сайтів WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

Коментарі до запису: 0

Додати коментар або відгук