我正在尝试创建类似post选项卡中的链接(请参见下图)。
我创建了WP_List_table
但我不知道如何创建这些链接,或者如何让它们显示不同的db查询。
我知道extra_tablenav
类中的函数,但这会在批量操作区域之后添加一些内容,所以这似乎并不是我想要的。
我正在尝试创建类似post选项卡中的链接(请参见下图)。
我创建了WP_List_table
但我不知道如何创建这些链接,或者如何让它们显示不同的db查询。
我知道extra_tablenav
类中的函数,但这会在批量操作区域之后添加一些内容,所以这似乎并不是我想要的。
如注释中所述,如果这是要添加/删除链接的现有表,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,并且只应为具有必要功能的用户显示链接。
你必须打电话views();
呈现页面内容时。
放<?php $wp_list_table->views(); ?>
在页面标题之后和表单之前。
请参阅:\\wp admin\\edit。php查看何时调用。
对于这个问题,我创建了一个自定义样式,您可以按照
//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
}