สร้างตารางในสไตล์ผู้ดูแลระบบหรือไม่


44

วิธีที่แนะนำในการสร้างหน้าด้วยตารางในรูปแบบของตารางที่แสดงโพสต์หรือผู้ใช้ในพื้นที่ผู้ดูแลระบบคืออะไร?

ฉันกำลังขยายปลั๊กอินรูปภาพแคชและมันมีตารางที่มีโดเมนและรูปภาพจำนวนหนึ่งจากโดเมนนั้น ดังนั้นจึงไม่มีตารางที่มีอยู่เทียบเท่าที่ฉันสามารถสร้างเมื่อ (ในรุ่นแรกของคำถามนี้ผมถามเกี่ยวกับตารางที่มีการโพสต์ แต่มีฉันจะ (อาจจะ) ขยายตารางการโพสต์ที่มีอยู่ )

ฉันควรตั้งตัวเองบนหน้าภาพรวมโพสต์แล้วเริ่มต้นด้วย<table class="widefat">หรือมีฟังก์ชั่นที่ดีกว่านี้หรือไม่ คุณรู้หรือเปล่าว่าเป็นตัวอย่างที่ชัดเจนของตารางที่มีการเพจซึ่งฉันสามารถใช้ทำงานได้


3
มีบล็อกใหม่สำหรับ WordPress UI styleguide คุณอาจพบว่ามีประโยชน์ dotorgstyleguide.wordpress.com/outline
sorich87

2
หมายเหตุตนเอง: scribu เพิ่มระบบตาราง ajaxified ใหม่ใน WP 3.1WP_List_Tableมีชั้นฐาน อาจมีการอัปเดตคำถามนี้ด้วยข้อมูลเกี่ยวกับวิธีใช้งาน
ม.ค. Fabry

คำตอบ:


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)
Michiel Standaert

@MichielStandaert No.
kaiser

@MichielStandaert หากคุณต้องการผลลัพธ์หน้าเลขที่คุณสามารถใช้paginate_links
tiltdown

ขอบคุณมาก! (แต่ฉันยังคงถามว่าทำไมพวกเขาไม่ใช้:oddแถวแทนที่จะให้เราเพิ่มคลาสสองแถว ... )
Zachary Dahan

เห็นได้ชัดว่ามีวิธีแก้ปัญหา "ดีกว่า" (เช่นเดียวกับคำตอบอื่น ๆ ที่นี่) แต่สำหรับตารางพื้นฐานที่รวดเร็วนี่คือสิ่งที่ฉันเป็นหลังจากนั้น ขอขอบคุณ!
rinogo

26

ใช้ Core API ไม่ใช่แค่ CSS

โดยปกติคุณเพียงแค่ใช้อินสแตนซ์ของWP_List_Tableคลาส

คำแนะนำ:

  • เพิ่มเติมเกี่ยวกับเรื่องนี้ใน Codex ที่นี่
  • นี่คือคำแนะนำจากWP Engineer - มากเกินกว่าจะคัดลอกได้
  • และคู่มืออื่นในนิตยสาร Smashingออนไลน์

ประโยชน์ที่ได้รับ?

ใช่!

คุณสามารถเพิ่มเลขหน้ากล่องค้นหาการกระทำและเวทมนตร์อะไรก็ตามที่คุณจินตนาการได้ (และสามารถเขียนโค้ดได้)


1
คำใบ้เล็ก ๆ เป็นลิงก์เพื่อดูมาร์กอัป, คลาสสำหรับส่วนต่อประสานผู้ดูแลระบบโดยไม่มีเป้าหมายในการสร้างตาราง: github.com/bueltge/WordPress-Admin-Style
bueltge

1
> การเข้าถึงของคลาสนี้ถูกทำเครื่องหมายเป็นส่วนตัว นั่นหมายความว่ามันไม่ได้มีไว้สำหรับใช้งานโดยนักพัฒนาปลั๊กอินและธีมเนื่องจากอาจมีการเปลี่ยนแปลงโดยไม่มีการเตือนในการเปิดตัว WordPress ในอนาคต หากคุณยังต้องการใช้ชั้นเรียนคุณควรทำสำเนาเพื่อใช้และแจกจ่ายกับโครงการของคุณเองหรือใช้แบบอื่นตามความเสี่ยงของคุณเอง
Austin Pray

@AustinPray สำเนา ? ไม่โปรดอย่าทำเช่นนั้น มี betas, RCs และ pre-release อื่น ๆ ของ WP ที่มีอยู่ เพียงอัปเดตการใช้งาน / ส่วนขยายของคุณ ถ้าคุณต้องไปด้านข้างจริงๆให้เขียนสิ่งที่ดีกว่าของคุณเอง รหัสหลักไม่ว่าดี
ไกเซอร์

@kaiser อย่ายิงผู้ส่งสารนั่นไม่ใช่คำพูดของฉัน ฉันอ้างจาก WP Codex แม้ว่าการลงทะเบียนด้วยตัวคุณเองสำหรับการทดสอบการถดถอยแบบต่อเนื่องกับทุก ๆ เบต้าและ RC นั้นฟังดูไม่ดีไปกว่าการคัดลอกคลาส ฉันเห็นด้วยกับการเขียนชั้นง่าย ๆ ของคุณเป็นวิธีที่ดีกว่า
Austin Pray

@AustinPray ไม่มีความรู้สึกอย่างหนัก :) Codex เขียนขึ้นโดยคนอย่างคุณและฉัน ในความเป็นจริงคุณสามารถไปตอนนี้และย้อนกลับคำสั่งนั้นและผู้คนจะพูดมัน
ไกเซอร์

13

ใช้ตัวอย่างนี้ (เขียนเป็นปลั๊กอิน) เพื่อสร้างตารางผู้ดูแลระบบของคุณ:

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

มันใช้คลาสWP_List_Tableในตัว


3
ฉันคิดว่านี่ควรเป็นคำตอบที่ยอมรับได้ ดูบทความนี้ในนิตยสาร Smashing ที่เชื่อมต่อแนวทางที่คล้ายกัน: wp.smashingmagazine.com/2011/11/03/ …
julien_c


0

คุณอาจต้องการเพิ่มตัวกรองในรายการประเภทโพสต์ที่คุณกำหนดเองในผู้ดูแลระบบหรือไม่ คำตอบที่เชื่อมโยงด้านล่างแสดงวิธีการทำ taxonomy แต่คุณสามารถใช้เกณฑ์อื่น ๆ ในrestrict_manage_postshook ของคุณได้อย่างง่ายดาย:

แจ้งให้เราทราบหากคุณมีคำถามเพิ่มเติม


ฉันขอโทษสำหรับคำถามที่ไม่ชัดเจน ในตัวอย่างแรกของฉันมันเป็นตารางโพสต์และแน่นอนฉันสามารถลองใช้ตารางโพสต์ที่มีอยู่สำหรับสิ่งนั้น (แม้ว่าฉันต้องการเพียงแสดงชื่อโพสต์และคอลัมน์ที่กำหนดเองทั้งหมด) แต่ตอนนี้ฉันได้แก้ไขคำถามของฉันด้วยตัวอย่างที่เป็นรูปธรรม: ฉันมีตารางโดเมนดังนั้นจึงไม่มีตารางที่มีอยู่เทียบเท่าที่ฉันสามารถขยายได้
Jan Fabry

@Jan : Ah ใช่ฉันคิดว่าคุณได้พบความจริงว่าไม่มีวิธีการห่อหุ้มที่ดีในการทำเช่นนี้นอกเหนือจากการเขียน HTML (ซ้ำ) ฉันมักจะมีปัญหาเดียวกัน อาจสร้างตั๋วจาก trac เพื่อขอการปรับปรุงนี้และเชื่อมโยง URL / ticket # ที่นี่เพื่อให้เราสามารถสนับสนุนได้
MikeSchinkel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.