Ich habe dies umformuliert, um mehr Sinn zu machen.
Ok, ich habe ein Plugin, das einen Remote-Dienst verwendet, der nach Updates sucht, ähnlich wie Standard-WordPress-Plugins. In diesem Fall überprüft es nur eine XML-Datei.
Ich möchte eine solche Menüblase anzeigen, wenn ein Update verfügbar ist.
Es kann nur eine "1" oder einen Text wie "alert" anzeigen, es spielt keine Rolle.
Da mein Plugin eine Optionsseite verwendet (mit add_options_page
), werden die Plugin-Einstellungen im Standard-Untermenü "Einstellungen" angezeigt.
Ich denke, ich muss das folgende CSS hinzufügen, damit die Blase angezeigt wird.
<span class='update-plugins count-1' title='title'><span class='update-count'>1</span></span>
und binden in die globale $submenu
. Das Problem ist, dass ich keinen fest codierten Array-Wert für das Menü verwenden kann, da jede Site unterschiedliche Werte hat.
Also kann ich nicht verwenden $submenu[80][10] .= <span class='update-plugins count-1' title='title'><span class='update-count'>1</span></span>
Wie finde ich den Wert meines Plugins-Untermenüs? Muss ich das Array durchlaufen und die Zeichenfolgenwerte abgleichen?
Auch wenn ich die Werte fest codiert habe, konnte ich die Blase nicht zum Anzeigen bringen.
//adding plugin to menu
add_action('admin_menu', 'sec_plugin_checker');
function sec_plugin_checker() {
add_options_page(' Plugin Checker', 'Plugin Check', 'activate_plugins',
'sec_plugin_check', 'sec_checker');
// the conditional where I want the bubble to appear
if (!empty($matches)){
echo "Match found !<br />";
global $submenu;
foreach( $submenu as $item ) {
$item[41][20] = sprintf( __( 'Updates %s', 'sec_plugin_checker' ),
"<span class='update-plugins count-1' title='title'>
<span class='update-count'>1</span></span>");
}
}
und so var_dump($submenu);
sieht ein aus,
["options-general.php"]=>
array(9){
...
[41]=>
array(4) {
[0]=>
string(20) "Plugin Check"
[1]=>
string(16) "activate_plugins"
[2]=>
string(21) "sec_plugin_check"
[3]=>
string(23) " Plugin Checker"
...
}