Yönetici tarzında bir tablo oluşturma?


44

Yönetici alanında yayınları veya kullanıcıları gösteren tabloların tarzında, tablo içeren bir sayfa oluşturmanın önerilen yolu nedir?

Önbellek Görüntüleri eklentisini genişletiyorum ve etki alanlarını içeren bir tablo ve bu etki alanından birkaç resim içeriyor. Bu yüzden üzerine kurabileceğim eşdeğer bir tablo yok (bu sorunun ilk versiyonunda, yazı içeren bir masa hakkında sorular sordum, fakat orada mevcut yazı masasını genişletebilirim ).

Kendimi sadece yazı genel bakış sayfasına dayandırmalı mıyım ve bir ile mi başlamalıyım <table class="widefat">? Çalışmamı temel alabileceğim, sayfalamayı içeren temiz bir boş tablo örneği biliyor musunuz?


3
WordPress UI styleguide için yeni bir blog var, onu yararlı bulabilirsiniz. dotorgstyleguide.wordpress.com/outline
sorich87

2
Kendine Not: scribu, WP 3.1’de temel sınıfla yeni bir boşa harcanan masa sistemi ekledi WP_List_Table. Bu soru muhtemelen nasıl kullanılacağı hakkında bilgi ile güncellenebilir.
Jan Fabry

Yanıtlar:


29

Genelde kullandığım şey bu:

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

Umarım yardımcı olur.


Otomatik sayfalama bu gibi eklenmiş olması da mı? (örn. 1-20 yazı gösteriliyor)
Michiel Standaert,

@MichielStandaert No.
kaiser

@MichielStandaert sayfalandırılmış bir sonuç istiyorsanız, paginate_links
tiltdown

Teşekkürler ! (Ama neden hala :oddher iki satırda bir sınıf ekleyelim? Neden satır için kullanmadıklarını soruyorum ...)
Zachary Dahan

Açıkçası "daha iyi" çözümler var (buradaki diğer cevaplar gibi), ancak hızlı, basit bir tablo için, tam olarak benim peşimde olan buydu. Teşekkür ederim!
Rinogo

26

Çekirdek API'yi kullanın, yalnızca CSS’ini değil

Normalde sadece WP_List_Tablesınıfın bir örneğini kullanırsınız .

Kılavuzlar:

Yararları?

EVET!

Sayfalandırma, arama kutuları, eylemler ve hayal edebildiğiniz her büyü (ve kodlamayı yapabilir) ekleyebilirsiniz.


1
Yalnızca tablo oluşturma amacı olmadan, biçimlendirme, yönetici arabirimi sınıflarını görmek için bağlantı olarak küçük ipucu: github.com/bueltge/WordPress-Admin-Style
bueltge

1
> Bu sınıfın erişimi özel olarak işaretlendi. Bu, gelecekteki WordPress sürümlerinde herhangi bir uyarıda bulunulmaksızın değiştirilebileceği için eklenti ve tema geliştiricileri tarafından kullanılması amaçlanmadığı anlamına gelir. Sınıftan faydalanmak istiyorsanız, kendi projenizle birlikte kullanmak ve dağıtmak için bir kopyasını almalı ya da riski kendinize ait olarak kullanmalısınız.
Austin,

@AustinPray Bir kopya ? Hayır, lütfen yapma. Betalar, RC'ler ve WP'nin diğer ön sürümleri mevcut. Sadece uygulamanızı / uzantınızı güncelleyin. Gerçekten yana doğru gitmeniz gerekiyorsa, kendi başınıza daha iyi bir şeyler yazmanız yeterlidir. Çekirdek kod o kadar iyi değil .
kaiser

@kaiser Messenger'ı vurma, benim sözlerim değil. WP Kodeksinden alıntı yapıyordum. Her beta ve RC ile yapılan sürekli regresyon testi için kendinizi kaydettirmenize rağmen, sınıfı kopyalamaktan daha iyi bir ses gelmiyor. Kendi basit sınıfınızı yazmanın daha iyi bir yol olduğunu kabul ediyorum.
Austin Pray,

@AustinPray Zor duygular yok :) Codex, sizin ve benim gibi insanlar tarafından yazılmıştır. Aslında, şimdi gidip bu ifadeyi geri alabilirsiniz ve insanlar bunu alıntılar.
kaiser



0

Yönetici içindeki özel posta türü listenize bir filtre eklemeyi düşünebilirsiniz? Aşağıdaki bağlantılı cevap taksonomi ile nasıl yapılacağını gösterir, ancak kancanızdaki diğer kriterleri kolayca kullanabilirsiniz restrict_manage_posts:

Eğer başka sorunuz varsa bana haber verin.


Belirsiz soru için özür dilerim. İlk örneğimde bu bir yazı masasıydı ve aslında mevcut yazı tablosunu bunun için kullanmaya çalışabilirdim (sadece yazı başlıklarını ve sonra da tüm özel sütunları göstermek istesem bile?). Ama şimdi sorumu somut bir örnekle düzenledim: Bir alan adım var, dolayısıyla genişletebileceğim eşdeğer bir tablom yok.
Jan Fabry

@Jan : Ah. Evet, gerçeği bulduğunuzu düşünüyorum, (çoğaltılmış) HTML yazmanın dışında bunu yapmanın iyi bir yolu yoktur. Sık sık aynı sorunu yaşadım. Belki bu geliştirmeyi isteyen trac'te bir bilet oluşturun ve URL'yi / bilet # bağlantısını burada destekleyelim.
MikeSchinkel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.