web-dev-qa-db-fra.com

Mettez en surbrillance les widgets personnalisés dans la zone d'administration?

J'ai créé des widgets personnalisés que mon client peut utiliser, mais je souhaite les faire ressortir parmi la quinzaine de widgets standard de la zone d'administration. Comment puis-je faire ceci?

J'ai résolu ce problème moi-même et je placerai la solution ici, mais n'hésitez pas à ajouter une meilleure solution si vous en avez une.

5
Jan Fabry

Tous les widgets de la zone d'administration ont la valeur id dans le style widget-[global_counter]_[widget_key]-[widget_id], par exemple widget-59_monkeyman_widget_shortcut-5 (widget installé) ou widget-11_monkeyman_widget_shortcut-__i__ (un widget désinstallé de la liste).

Si votre clé de widget contient quelque chose d'unique pour tous vos widgets (comme le nom de votre société), vous pouvez l'utiliser et ajouter un sélecteur CSS d'attribut de sous-chaîne (qui fonctionne dans la plupart des navigateurs. ). Dans mon cas, div.widget[id*=_monkeyman_] fait l'affaire, alors j'ajoute un petit extrait de code CSS dans l'en-tête de la page d'administration widgets.php:

add_action('admin_print_styles-widgets.php', 'monkeyman_widgets_style');
function monkeyman_widgets_style()
{
    echo <<<EOF
<style type="text/css">
div.widget[id*=_monkeyman_] .widget-title {
    color: #2191bf;
}
</style>
EOF;
}

Cela me donne le résultat suivant: Highlighted widgets amongst regular widgets

8
Jan Fabry