如何复制WordPress的更新通知?

时间:2016-11-24 05:49:59

标签: php wordpress hook admin

在WordPress中我已经学会了如何使用wp_insert_post()插入自定义JSON链接,但我想要一种方法可以条件化JSON拉的状态,如果我收到错误,我可以标记自定义帖子类型,包含要审核的错误计数。我花了一些时间在codex和开发人员文档中寻找这个并没有成功。我试过在WordPress管理员下浏览网站,但我没有运气。

我正在使用较旧的WordPress版本来抛出我正在谈论的内容。在此屏幕截图中,您将看到包含更新编号的圆圈:

enter image description here

这里是红色圆圈,表示需要更新插件:

enter image description here

这叫做什么以及我可以使用什么钩子来解决这个问题所以当我使用wp_insert_post()时,我可以抛出带有JSON返回错误的计数的圆圈,这样我就可以查看发生了什么?

当我浏览核心的wp-admin文件夹时,我能够在update-core.php下找到控制它的代码,但我无法解决这是如何完成的。在menu.php中,我看到:

if ( ! is_multisite() ) {
    if ( current_user_can( 'update_core' ) )
        $cap = 'update_core';
    elseif ( current_user_can( 'update_plugins' ) )
        $cap = 'update_plugins';
    else
        $cap = 'update_themes';
    $submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php');
    unset( $cap );
}

所以我尝试研究变量$cap上的任何内容,看看我是否可以在代码中提取一些东西,但仍然没有。

澄清一下:当我在我的JSON提要中检测到其中一个响应时,例如错误状态,我将条件化它为error_cpt创建一个帖子。我已经完成了它并且它有效,但是我喜欢在我为error_cpt创建的新帖子状态下抛出新帖子数量的圈子,当我查看帖子并将帖子状态更改为其他内容时,例如帖子状态已审核计数的圆圈会消失。我需要一个带有计数的圆圈,所以如果我有6个错误帖子,那么自定义帖子类型error_cpt旁边会有一个6圈。

1 个答案:

答案 0 :(得分:0)

你打电话给add_options_page(),不要迟到。使用支持的API执行此操作总是更好,而不是使用内部结构:

add_action( 'admin_menu', 'customnotification_created' );
function customnotification_created()
{
    $warnings = get_transient( 'custom_warnings' ); // You can place your json count
    $warning_count = count( $warnings );
    $warning_title = esc_attr( sprintf( '%d plugin warnings', $warning_count ) );

    $menu_label = sprintf( __( 'Plugin Checker %s' ), "<span class='update-plugins count-$warning_count' title='$warning_title'><span class='update-count'>" . number_format_i18n($warning_count) . "</span></span>" );

    add_options_page( 'Plugin Check', $menu_label, 'activate_plugins', 'sec_plugin_check', 'sec_checker' );
}

请参阅Add update notification bubble to admin menu item?