添加仪表板小部件以显示-自定义帖子类型统计信息,来自其他插件的信息

时间:2012-01-06 作者:Corbula

我有一个网站,我需要能够编辑仪表板小部件,以便它向网站显示相关信息。

目前所显示的只是即时小部件。在这个小部件中,我不需要讨论部分,也不需要帖子和标签。我真正需要的是自定义帖子类型,例如产品和新闻。所以它会说产品,然后说有多少产品,就像页面一样。

如果您可以显示来自其他插件的信息,那也太好了。例如,我使用一个名为Support Ticket Center, 如果你能展示有多少张公开的支持票,有多少张已经关闭等等,那就太好了。

有没有可以进行这种定制的插件?还是更复杂?

谢谢

EDIT:我已经尝试将以下代码添加到我的函数中。php文件。这有点可行,但输出中添加了许多其他div和东西。我不明白他们是从哪里来的。

    // wp_dashboard_setup is the action hook
add_action(\'wp_dashboard_setup\', \'mycustom_dashboard_stats\');

// add dashboard widget
function mycustom_dashboard_stats() {
    wp_add_dashboard_widget(\'site_stat_widget\', \'Site Stats\',\'wp_dashboard_custom_post_types\');
}

function wp_dashboard_custom_post_types() {
    global $wp_registered_sidebars;

    $num_posts = wp_count_posts( \'Product\' );


    echo "\\n\\t".\'<div class="table table_content">\';
    echo "\\n\\t".\'<p class="sub">\' . __(\'Content\') . \'</p>\'."\\n\\t".\'<table>\';
    echo "\\n\\t".\'<tr class="first">\';

    // Posts
    $num = number_format_i18n( $num_posts->publish );
    $text = _n( \'Product\', \'Products\', intval($num_posts->publish) );
    if ( current_user_can( \'edit_posts\' ) ) {
        $num = "<a href=\'edit.php\'>$num</a>";
        $text = "<a href=\'edit.php\'>$text</a>";
    }
    echo \'<td class="first b b-products">\' . $num . \'</td>\';
    echo \'<td class="t products">\' . $text . \'</td>\';

    echo \'</tr>\';
}
这是它正在输出的html代码。

<div class="table table_content">
<p class="sub">Content</p>
<div class="postbox-container" style="width:49%;">
<div class="postbox-container" style="display:none;width:49%;">
<div class="postbox-container" style="display:none;width:49%;">
<p>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<table>
</div>
这将输出“内容”,然后是巨大的差距,然后是产品数量。我不知道为什么要插入所有清晰的div和东西。

我如何让它输出与“立即”小部件相同的html,以便它正确显示并使用相同的css。

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

你可以再想象一点,但这应该让你开始。

add_action( \'right_now_content_table_end\', \'wpse_3809\');
function wpse_3809() {
    $types = get_post_types( array( \'_builtin\' => false ) );
    foreach( $types as $type ) :
        $num_posts = wp_count_posts( $type );
        $num = number_format_i18n( $num_posts->publish );
        ?>
        <tr>
            <td class="first b b_<?php echo $type; ?>">
                <a href="edit.php?post_type=<?php echo $type; ?>"><?php echo $num; ?></a>
            </td>
            <td class="t <?php echo $type; ?>">
                <a href="edit.php?post_type=<?php echo $type; ?>"><?php echo $type; ?></a>
            </td>
        </tr>
        <?php
    endforeach;
}
Edit:“立即”仪表板小部件的代码可以在/wp admin/includes/dashboard中找到。php函数为wp_dashboard_right_now. 遗憾的是,似乎没有允许您删除帖子、页面、类别、标记或评论的筛选器。如果要删除它们,可以使用JavaScript从DOM中删除元素,或者可以使用CSS隐藏它们(如果有CSS父选择器?)。或者,您可以复制代码并删除/添加任何需要的内容。如果不想列出所有自定义帖子类型,请删除get_post_types 和foreach循环,并更换$type 使用自定义帖子类型名称。

SO网友:hassan

@v0idless代码工作正常,但请使用它以获得最佳结果

//$类型=get\\u post\\u类型(数组(“\\u builtin”=>false));

$types = get_post_types( array( \'_builtin\' => false,\'public\'   => true ) );

结束

相关推荐

插件:Google Analytics for Dashboard错误-时间戳与当前时间相差太远

有人用过Google Analytics for Dashboard 插件?我已经成功安装了它,但每当我尝试使用开始登录过程按钮将其链接到我的Google帐户时,我总是收到一条奇怪的消息,如下所示:Timestamp is too far from current time: <a Unix timestamp here> 我正在使用WordPress 3.1.3。知道这里发生了什么吗?谢谢,我