如何在WP_LIST_TABLE的顶部创建链接?

时间:2012-06-28 作者:Kirill Fuchs

我正在尝试创建类似post选项卡中的链接(请参见下图)。

enter image description here

我创建了WP_List_table 但我不知道如何创建这些链接,或者如何让它们显示不同的db查询。

我知道extra_tablenav 类中的函数,但这会在批量操作区域之后添加一些内容,所以这似乎并不是我想要的。

3 个回复
SO网友:Stephen Harris

如注释中所述,如果这是要添加/删除链接的现有表,see this answer.

如果这是的自定义子类WP_List_Table, e、 g.:

class Wpse56883_WP_List_Table extends WP_List_Table{

 //Class methods here

}
然后通过覆盖get_views() 方法这将返回一个数组:array ( id => link ). 这应该链接回页面,为查询变量附加一些值(我将调用customvar).

构造链接时,请检查的当前值customvar 并有条件地添加类current 以粗体突出显示当前视图。

所以,在你的课堂上。

function get_views(){
   $views = array();
   $current = ( !empty($_REQUEST[\'customvar\']) ? $_REQUEST[\'customvar\'] : \'all\');

   //All link
   $class = ($current == \'all\' ? \' class="current"\' :\'\');
   $all_url = remove_query_arg(\'customvar\');
   $views[\'all\'] = "<a href=\'{$all_url }\' {$class} >All</a>";

   //Foo link
   $foo_url = add_query_arg(\'customvar\',\'foo\');
   $class = ($current == \'foo\' ? \' class="current"\' :\'\');
   $views[\'foo\'] = "<a href=\'{$foo_url}\' {$class} >Foo</a>";

   //Bar link
   $bar_url = add_query_arg(\'customvar\',\'bar\');
   $class = ($current == \'bar\' ? \' class="current"\' :\'\');
   $views[\'bar\'] = "<a href=\'{$bar_url}\' {$class} >Bar</a>";

   return $views;
}
然后在你的prepare_items 方法可以检索customvar 方法并根据其值更改查询。

 function prepare_items(){
     //Retrieve $customvar for use in query to get items.
     $customvar = ( isset($_REQUEST[\'customvar\']) ? $_REQUEST[\'customvar\'] : \'all\');
 }
Note: 这些链接可用于执行操作。我会将“action”值存储在查询变量中action (记住使用nonces!)。然后钩住load-{$hook} (see Codex), 检查权限和nonce,然后执行操作。

如果要包含“操作链接”,请确保使用nonce,并且只应为具有必要功能的用户显示链接。

SO网友:Spyros

你必须打电话views(); 呈现页面内容时。

<?php $wp_list_table->views(); ?>在页面标题之后和表单之前。

请参阅:\\wp admin\\edit。php查看何时调用。

SO网友:Mainuddin Rashed

对于这个问题,我创建了一个自定义样式,您可以按照

//Add a filter hook first 

add_filter(\'views_edit-your_custom_post_name\',array($this,\'prefix_post_status_links\'));

 function prefix_post_status_links($views) {
         ?>
        <div class="gwf-tab-header">
            <ul class="nav nav-pills">
                <?php
                $views = array(
                 \'all\' => \'
                <li class="nav-item">
                    <a class="nav-link active p-0" href="edit.php?post_type=your_custom_post_name">
                        <i class="fas fa-circle"></i>
                        All Entries
                    </a>
                </li>\',
                \'active\' => \'<li class="nav-item">
                    <a class="nav-link p-0 text-success" href="edit.php?post_status=active&post_type=your_custom_post_name">
                        <i class="far fa-circle"></i>
                        Active
                    </a>
                </li>\',
                \'inactive\' => \'<li class="nav-item">
                    <a class="nav-link p-0 text-warning" href="edit.php?post_status=inactive&post_type=your_custom_post_name">
                        <i class="far fa-circle"></i>
                        Inactive
                    </a>
                </li>\',
                \'trash\' => \'<li class="nav-item">
                    <a class="nav-link p-0 text-danger" href="edit.php?post_status=trash&post_type=your_custom_post_name">
                        <i class="far fa-circle"></i>
                        Trash
                    </a>
                </li>\'
                );
                 return $views;
                ?>
            </ul>
        </div>
        <?php
    }

结束

相关推荐