plugin_row_meta : Le hook de la semaine n°13

plugin_row_meta : Le hook de la semaine n°13

Park Row

plugin_row_meta est un hook de type action qui vous permet d’ajouter, modifier et supprimer des liens ou du texte.

Les liens par défaut + le double auteur
Les liens par défaut + le double auteur

Kings Row

L’idée est simple, j’ai besoin de pouvoir afficher tous les auteurs d’un plugin. Si le plugin n’est pas activé, un seul auteur apparait, tant pis. Mais une fois actif, je veux pouvoir afficher tout le monde car j’estime que tout le monde mérite d’avoir son nom ici.

J’utilise donc le hook plugin_row_meta et c’est relativement simple (oui c’est subjectif) :

add_filter( 'plugin_row_meta', 'pastacode_plugin_row_meta', 10, 2 );
function pastacode_plugin_row_meta( $plugin_meta, $plugin_file )
{
    if( plugin_basename( __FILE__ ) == $plugin_file ){
        $last = end( $plugin_meta );
        $plugin_meta = array_slice( $plugin_meta, 0, -2 );
        $a = array();
        $authors = array(
            array(  'name'=>'Willy Bahaud', 'url'=>'http://www.wabeo.fr' ),
            array(  'name'=>'Julio Potier', 'url'=>'http://www.baw-dev-boiteaprod.pf2.wpserveur.net' ),
        );
        foreach( $authors as $author )
            $a[] = '<a href="' . $author['url'] . '" title="' . esc_attr__( 'Visit author homepage' ) . '">' . $author['name'] . '</a>';
        $a = sprintf( __( 'By %s' ), wp_sprintf( '%l', $a ) );
        $plugin_meta[] = $a;
        $plugin_meta[] = $last;
    }
    return $plugin_meta;
}
  • Je commence donc par déclarer mon action sur le hook précité, puis ma fonction. Remarquez que l’action prends 2 paramètres qui sont 10 et 2, 2 car j’ai besoin de 2 paramètres dans ma fonction.
  • Première chose à faire, sachant que ce hook est déclenché sur la page des plugins et une fois par plugin à afficher, je vérifie que je suis en train de tester MON plugin. J’utilise le 2ème paramètre, vérifié avec plugin_basename() qui est une modification de basename() à la sauce plugin. Je lui donne mon fichier avec la variable magique __FILE__. WordPress en ressort quelquechose comme dossier/fichier.php.
  • Ensuite avec $last je vais garder en mémoire le dernier item des actions passées via le paramètre $plugin_meta. Le dernier étant le lien vers le site du plugin. Puis dans le même ordre d’idée je supprime les 2 derniers items qui sont donc ce fameux lien du plugin et l’auteur. J’utilise ici array_slice().
  • Je peux maintenant déclarer mes auteurs via $authors, je leur assigne un nom et une URL.
  • Hop, on se fait une boucle qui va ajouter des items dans le tableau $a un format HTML contenant les auteurs, un lien vers leur site.
  • Je concatène $a avec la fonction WordPress wp_sprintf() et le paramètre %l qui nous permets de séparer les auteurs avec des virgules, et les 2 derniers par un « et » (ou juste un ‘et’ s’il sont 2).
  • Il ne me reste plus qu’a ajouter $a dans une nouvelle entrée de $plugin_meta, et je rajoute ensuite le site du plugin que j’avais supprimé au tout début.
  • N’oubliez pas le return $plugin_meta sinon … aucun lien (je suis fils unique).

Fraternity Row

Pour information, le plugin « Pastacode » va arriver dans les jours qui suivent, il s’agit du plugin qui ajoute une coloration syntaxique au code posté ci-dessus, grà¢ce à PrismJS.

Vous aimez ? Partagez !


Réagir à cet article

220 caractères maximum