Створення таблиці в стилі адміністратора?


44

Який рекомендований спосіб створення сторінки за допомогою таблиці, у стилі таблиць із зображеннями публікацій або користувачів у зоні адміністратора?

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

Чи варто просто базуватися на сторінці огляду публікацій і починати з а <table class="widefat">, чи є кращі функції, які зараз справляються з цим? Чи знаєте ви чистий, порожній приклад таблиці з пейджингом, на якій я можу базувати свою роботу?


3
Існує новий блог для стилю керівництва інтерфейсу WordPress, який може бути вам корисним. dotorgstyleguide.wordpress.com/outline
sorich87

2
Зауважте, що самостійно: scribu додав нову аяксифіковану систему таблиць у WP 3.1 з базовим класом WP_List_Table. Це питання, ймовірно, може бути оновлено інформацією про те, як ним користуватися.
Ян Фабрі

Відповіді:


29

Це те, що я зазвичай використовую:

<table class="widefat fixed" cellspacing="0">
    <thead>
    <tr>

            <th id="cb" class="manage-column column-cb check-column" scope="col"></th> // this column contains checkboxes
            <th id="columnname" class="manage-column column-columnname" scope="col"></th>
            <th id="columnname" class="manage-column column-columnname num" scope="col"></th> // "num" added because the column contains numbers

    </tr>
    </thead>

    <tfoot>
    <tr>

            <th class="manage-column column-cb check-column" scope="col"></th>
            <th class="manage-column column-columnname" scope="col"></th>
            <th class="manage-column column-columnname num" scope="col"></th>

    </tr>
    </tfoot>

    <tbody>
        <tr class="alternate">
            <th class="check-column" scope="row"></th>
            <td class="column-columnname"></td>
            <td class="column-columnname"></td>
        </tr>
        <tr>
            <th class="check-column" scope="row"></th>
            <td class="column-columnname"></td>
            <td class="column-columnname"></td>
        </tr>
        <tr class="alternate" valign="top"> // this row contains actions
            <th class="check-column" scope="row"></th>
            <td class="column-columnname">
                <div class="row-actions">
                    <span><a href="#">Action</a> |</span>
                    <span><a href="#">Action</a></span>
                </div>
            </td>
            <td class="column-columnname"></td>
        </tr>
        <tr valign="top"> // this row contains actions
            <th class="check-column" scope="row"></th>
            <td class="column-columnname">
                <div class="row-actions">
                    <span><a href="#">Action</a> |</span>
                    <span><a href="#">Action</a></span>
                </div>
            </td>
            <td class="column-columnname"></td>
        </tr>
    </tbody>
</table>

Сподіваюся, що це допомагає.


це також має бути автоматичне вставлення сторінок таким чином? (напр., показ 1–20)
Мічіель Штендерт

@MichielStandaert №
кайзер

@MichielStandaert якщо ви хочете посторінковий результат ви можете використовувати paginate_links
tiltdown

Дякую ! (Але я все ще запитую, чому вони не використовували :oddдля рядка замість того, щоб ми додавали клас кожні два ряди ...)
Захарі Дахан

Очевидно, є «кращі» рішення (як і інші відповіді тут), але для швидкої основної таблиці це саме те, що я був після. Дякую!
rinogo

26

Використовуйте Core API, не тільки його CSS

Зазвичай ви просто використовуєте екземпляр WP_List_Tableкласу.

Посібники:

  • Детальніше про це в Кодексі тут .
  • Ось також посібник від WP Engineer - занадто багато, щоб копіювати його.
  • І ще один путівник по Smashing Magazine в Інтернеті.

Переваги?

ТАК!

Ви можете додати сторінки, пошукові вікна, дії та будь-яку магію, яку ви можете собі уявити (і вмієте кодувати).


1
Невелика підказка як посилання, щоб побачити розмітку, класи для інтерфейсу адміністратора, без мети створити таблиці: github.com/bueltge/WordPress-Admin-Style
bueltge

1
> Доступ цього класу позначений як приватний. Це означає, що він не призначений для використання розробниками плагінів та тем, оскільки він може бути змінений без попередження в будь-якій майбутній версії WordPress. Якщо ви все-таки хочете скористатися класом, вам слід зробити копію для використання та розповсюдження за допомогою власного проекту, або ж використовувати його на свій страх і ризик.
Моліться Остін

@AustinPray Копія ? Ні, будь ласка, не робіть цього. Є бета, RC та інші попередні випуски WP. Просто оновіть свою реалізацію / розширення. Якщо вам дійсно доведеться йти боком, просто напишіть щось краще самостійно. Основний код не що добре.
кайзер

@kaiser Не стріляй в месенджер, це не мої слова. Я цитував із WP Codex. Хоча підписатися на тестування на постійну регресію з кожною бета-версією та RC не здається набагато кращим, ніж копіювання класу. Я згоден, написання вашого простого класу - це кращий шлях вперед.
Остін Моліться

@AustinPray Ніяких важких почуттів :) Codex пишуть такі люди, як ти і я. Насправді, ви можете піти зараз і відновити цю заяву, і люди її цитуватимуть.
кайзер

13

Використовуйте цей приклад (написаний як плагін) для створення адміністративних таблиць:

http://wordpress.org/extend/plugins/custom-list-table-example/

Він використовує вбудований клас WP_List_Table .


3
Я думаю, це має бути прийнятою відповіддю. Також дивіться цю статтю в Smashing Magazine, яка формулює подібний підхід: wp.smashingmagazine.com/2011/11/03/…
julien_c


0

Ви можете розглянути можливість додавання фільтра до вашого списку типових повідомлень у адміністраторі? Зв'язана відповідь нижче показує, як це зробити з систематикою, але ви можете легко використовувати інші критерії в restrict_manage_postsгачку:

Повідомте мене, якщо у вас є додаткові запитання.


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

@Jan : Ага. Так, я думаю, ви знайшли правду, що немає хорошого інкапсульованого способу зробити це, крім написання (дублювання) HTML. У мене часто виникало одне і те ж питання. Можливо, створіть квиток на trac з проханням про вдосконалення та зв’яжіть тут URL-адресу / квиток #, щоб ми могли його підтримати.
MikeSchinkel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.