在自定义子菜单页面中获取不同的POST状态+COUNT,就像edit.php中一样

时间:2012-07-18 作者:INT

我正在尝试创建一个子菜单页,用于重新排序帖子/页面。现在,我正在尝试包括显示不同帖子状态的列表,例如:

All (5) | Published (4) | Draft (1)

我在编辑中翻找。php并发现它可以像这样拉列表:

$wp_list_table->views();

这让我找到了wp类列表。我在php中发现了以下内容:

function views() {
    $screen = get_current_screen();

    $views = $this->get_views();
    $views = apply_filters( \'views_\' . $screen->id, $views );

    if ( empty( $views ) )
        return;

    echo "<ul class=\'subsubsub\'>\\n";
    foreach ( $views as $class => $view ) {
        $views[ $class ] = "\\t<li class=\'$class\'>$view";
    }
    echo implode( " |</li>\\n", $views ) . "</li>\\n";
    echo "</ul>";
}
因此,由于它检查当前屏幕,是否可以以某种方式将我的自定义子菜单项设置为“姿势”作为编辑。php虽然不是?

或者如果有更简单的方法。

提前多谢了

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

中使用的类edit.php 是WP\\u List\\u表的扩展:WP_Posts_List_Table. 看见wp-admin/includes/class-wp-posts-list-table.php.

在这里你可以找到wp_count_posts( $type = \'post\', $perm = \'\' ). 第一个参数用于post类型,第二个参数可以为空或readable. 如果是的话readable 并且当前用户没有查看私人帖子的权限,这些帖子将被排除在外。就是这样WP_Posts_List_Table 在中执行get_views().

如果在首页上没有任何参数的情况下调用此函数,则会得到如下结果:

stdClass Object
(
    [publish] => 19
    [future] => 1
    [draft] => 6
    [pending] => 0
    [private] => 0
    [trash] => 8
    [auto-draft] => 42
    [inherit] => 0
)

结束