Make WordPress Core


Ignore:
Timestamp:
09/19/2022 09:06:08 PM (19 months ago)
Author:
davidbaumwald
Message:

Administration: Add new get_views_links method to WP_List_Table.

Many WP_List_Table child classes in core use mostly the same code to create their "view" links markup. To DRY-up the code, a new WP_List_Table->get_view_links method is being introduced to consolidate the HTML link generation when provided an array of links.

This change also implements this new method in the relevant WP_List_Table_xxx child classes get_views methods. Finally, unit tests are being added to validate view links markup and test for some "unhappy paths".

Props afercia, costdev, garrett-eclipse, Dharm1025, juhise, peterwilsoncc.
Fixes #42066.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/admin/wpPostsListTable.php

    r51997 r54215  
    320320    }
    321321
     322    /**
     323     * @ticket 42066
     324     *
     325     * @covers WP_Posts_List_Table::get_views
     326     */
     327    public function test_get_views_should_return_views_by_default() {
     328        global $avail_post_stati;
     329
     330        $avail_post_stati_backup = $avail_post_stati;
     331        $avail_post_stati        = get_available_post_statuses();
     332
     333        $actual           = $this->table->get_views();
     334        $avail_post_stati = $avail_post_stati_backup;
     335
     336        $expected = array(
     337            'all'     => '<a href="edit.php?post_type=page">All <span class="count">(38)</span></a>',
     338            'publish' => '<a href="edit.php?post_status=publish&#038;post_type=page">Published <span class="count">(38)</span></a>',
     339        );
     340
     341        $this->assertSame( $expected, $actual );
     342    }
     343
    322344}
Note: See TracChangeset for help on using the changeset viewer.