Stai creando una tabella in stile admin?


44

Qual è il modo consigliato di creare una pagina con una tabella, nello stile delle tabelle che mostrano post o utenti nell'area di amministrazione?

Sto espandendo il plug-in Cache Images e contiene una tabella con domini e un numero di immagini da quel dominio. Quindi non esiste una tabella esistente equivalente su cui posso basarmi (nella prima versione di questa domanda, ho chiesto di una tabella con post, ma lì potrei (forse) espandere la tabella di post esistente ).

Devo basarmi sulla pagina di riepilogo dei post e iniziare con un <table class="widefat">o ci sono funzioni migliori che gestiscono questo ora? Conosci un esempio pulito e vuoto di una tabella con paging su cui poter basare il mio lavoro?


3
C'è un nuovo blog per la styleguide dell'interfaccia utente di WordPress, potresti trovarlo utile. dotorgstyleguide.wordpress.com/outline
sorich87

2
Nota per sé: scribu ha aggiunto un nuovo sistema di tabella ajaxified in WP 3.1 , con una classe base WP_List_Table. Questa domanda può probabilmente essere aggiornata con informazioni su come usarla.
Jan Fabry,

Risposte:


29

Questo è ciò che generalmente utilizzo:

<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>

Spero che sia d'aiuto.


è anche avere l'impaginazione automatica inserita in questo modo? (es. mostrando il post 1-20)
Michiel Standaert,

@MichielStandaert No.
kaiser

@MichielStandaert se vuoi un risultato impaginato puoi usare paginate_links
tiltdown

Grazie ! (Ma sto ancora chiedendo perché non hanno usato :oddper la riga invece di aggiungere una classe ogni due righe ...)
Zachary Dahan

Esistono ovviamente soluzioni "migliori" (come le altre risposte qui), ma per una tabella rapida e di base, questo è esattamente ciò che stavo cercando. Grazie!
Rinogo,

26

Usa l'API Core, non solo il suo CSS

Normalmente usi solo un'istanza della WP_List_Tableclasse.

Guide:

Benefici?

SÌ!

Puoi aggiungere impaginazione, caselle di ricerca, azioni e qualunque magia tu possa immaginare (e sei in grado di codificare).


1
Piccolo suggerimento come link per vedere markup, classi per l'interfaccia di amministrazione, senza solo l'obiettivo di creare tabelle: github.com/bueltge/WordPress-Admin-Style
bueltge

1
> L'accesso a questa classe è contrassegnato come privato. Ciò significa che non è destinato all'uso da parte di sviluppatori di plugin e temi in quanto è soggetto a modifiche senza preavviso in qualsiasi futura versione di WordPress. Se desideri comunque utilizzare la classe, devi crearne una copia da utilizzare e distribuire con il tuo progetto, oppure utilizzarlo a tuo rischio e pericolo.
Austin Pray,

@AustinPray Una copia ? No, per favore non farlo. Sono disponibili versioni beta, RC e altre versioni preliminari di WP. Aggiorna la tua implementazione / estensione. Se devi davvero andare lateralmente, scrivi qualcosa di meglio da solo. Il codice principale non è così buono.
Kaiser

@kaiser Non sparare al messaggero, quelle non sono le mie parole. Stavo citando dal WP Codex. Anche se iscriversi per i test di regressione perpetua con ogni beta e RC non suona molto meglio che copiare la classe. Sono d'accordo che scrivere la tua lezione semplice è un modo migliore per andare avanti.
Austin Pray,

@AustinPray Nessun sentimento duro :) Il codice è scritto da persone come te e me. In effetti, puoi andare ora e ripristinare quell'affermazione e la gente lo citerà.
Kaiser



0

Ti consigliamo di aggiungere un filtro al tuo elenco di tipi di post personalizzato nell'amministratore? La risposta collegata di seguito mostra come farlo con una tassonomia ma puoi facilmente usare altri criteri nel tuo restrict_manage_postshook:

Fammi sapere se hai altre domande.


Mi scuso per la domanda poco chiara. Nel mio primo esempio era una tabella di post, e in effetti, potrei provare a usare la tabella di post esistente per quello (anche se voglio solo mostrare i titoli dei post e quindi tutte le colonne personalizzate?). Ma ora ho modificato la mia domanda con un esempio concreto: ho una tabella di domini, quindi non esiste una tabella esistente equivalente che posso espandere.
Jan Fabry,

@Jan : Ah. Sì, penso che tu abbia trovato la verità, che non esiste un buon modo incapsulato per farlo oltre a scrivere (duplicato) HTML. Ho avuto spesso lo stesso problema. Forse creare un ticket su trac chiedendo questo miglioramento e collegare qui l'URL / ticket # in modo che possiamo supportarlo.
MikeSchinkel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.