En la lista de plugins instalados en el panel de administración de WordPress se pueden encontrar enlaces bajo el nombre del plugin a la izquierda (Desactivar, Editar) y otros enlaces bajo la descripción del plugin a la derecha, junto a otra información como la versión del plugin (Por el autor, Ver detalles).

default_action_links_es

Los enlaces que aparecen en la imagen encima de estas líneas son los que WordPress muestra por defecto, con excepción del enlace del autor que se define en el archivo principal del plugin donde se dan todos los detalles sobre el mismo Plugin Name, Description, Version, Author, Author URI…

No hace mucho publiqué un snippet de código muy sencillo para añadir enlaces debajo del nombre del plugin, como Ajustes o FAQ (o ambos). Pero con este snippet sólo se pueden añadir los enlaces al final de los ya existentes por defecto.

Tal vez lo que necesitas, además de mostrar enlaces adicionales, es la posibilidad de elegir si los quieres al principio o al final de los ya existentes. Y también puede que quieras añadir enlaces justo debajo de la descripción del plugin (a la derecha).

Hay disponibles 2 filtros diferentes para hacer esto, plugin_action_links para añadir enlaces debajo del nombre del plugin y plugin_row_meta para añadirlos debajo de la descripción del plugin.

additional_action_links_es

En el siguiente código veremos como usar los filtros plugin_action_links y plugin_row_meta. Las funciones my_add_action_links y my_plugin_row_meta, básicamente harían lo mismo, así que he creado una tercera función plugin_action_links que será convocada por las dos primeras, donde se pueden pasar como argumentos un array de los enlaces a mostrar y la posición de los mismos (antes o después de los enlaces por defecto).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
add_filter( 'plugin_action_links', 'my_add_action_links', 10, 5 );
add_filter( 'plugin_row_meta',     'my_plugin_row_meta', 10, 2 );
 
/**
 * my_add_action_links
 */
 
function my_add_action_links( $actions, $plugin_file ) {
 
 $action_links = array(
 
   'settigns' => array(
      'label' => __('Settings', 'my_domain'),
      'url'   => get_admin_url(null, 'options-general.php?page=my-plugin-options')
    ), 
 
   'faq' => array(
      'label' => __('FAQ', 'my_domain'),
      'url' => 'http://www.my-plugins-site.com/faq'
       )
   );
 
  return plugin_action_links( $actions, $plugin_file, $action_links, 'before');
}
 
/**
 * my_plugin_row_meta
 */
 
function my_plugin_row_meta( $actions, $plugin_file ) {
 
 $action_links = array(
 
   'donate' => array(
      'label' => __('Donate', 'my_domain'),
      'url'   => 'http://www.my-plugins-site.com/donate'
    ));
 
  return plugin_action_links( $actions, $plugin_file, $action_links, 'after');
}
 
/**
 * plugin_action_links
 */
 
function  plugin_action_links ( $actions, $plugin_file,  $action_links = array(), $position = 'after' ) { 
 
  static $plugin;
 
  if( !isset($plugin) ) {
      $plugin = plugin_basename( __FILE__ );
  }
 
  if( $plugin == $plugin_file && !empty( $action_links ) ) {
 
     foreach( $action_links as $key => $value ) {
 
        $link = array( $key => '<a href="' . $value['url'] . '">' . $value['label'] . '</a>' );
 
         if( $position == 'after' ) {
 
            $actions = array_merge( $actions, $link );    
 
         } else {
 
            $actions = array_merge( $link, $actions );
         }
 
 
      }//foreach
 
  }// if
 
  return $actions;
 
}
Como usar los filtros plugin_action_links y plugin_row_meta
Etiquetado en:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *