如何复制 WordPress 的更新通知?

How can I replicate WordPress' update notification?

在 WordPress 中,我学会了如何使用 wp_insert_post() 插入自定义 JSON link,但我想要一种方法来确定 [=39] 的状态=] 拉,如果我收到错误,我可以用错误计数标记自定义 post 类型以供审查。我花了一段时间在法典和开发人员文档中寻找这个,但没有成功。我试过在 WordPress 管理员下浏览该网站,但我没有运气。

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

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

这叫什么,钩子是什么我可以用来绑定它所以当我使用 wp_insert_post() 时我可以抛出圆圈并计算错误 JSON returns 这样我就可以查看发生了什么?

当我浏览核心的 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 提要中检测到其中一个响应时,例如错误状态,我将对其进行条件化以创建 post 用于 error_cpt。我已经完成了并且它有效,但是我想在我为 error_cpt 创建的新 post 状态下以及当我查看 post 并将 post 状态更改为其他状态,例如 post 状态已审核,带有计数的圆圈将消失。我需要用计数抛出圆圈的钩子,所以如果我有 6 个错误 posts,那么在那个自定义 post 类型 error_cpt.

旁边会有一个带有 6 的圆圈

你打电话给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?