Crear un nombre seleccionable en WP_List_Table para Plugin Admin

3

He estado desarrollando un complemento en el que quería crear una tabla, con un estilo y funcionando como las tablas de publicación / página nativas de Wordpress.

Siguiendo la guía a continuación, pude crear la tabla y cargar mi base de datos. Lo único que no puedo averiguar es cómo hacer que se pueda hacer clic en uno de los contenidos de la fila.

enlace

IE - haciendo clic en la columna "nombre". Tengo los botones "editar, eliminar" debajo del nombre, pero eso no es suficiente.

Cualquier y todos los consejos serían muy apreciados. Miré otro plugin para ver cómo lo hacían, y parecía que rompieron la mesa y codificaron el código HTML de la tabla. Espero no tener que hacer esto.

EDITAR:

Elnombredelapublicación,¡Holamundo!Comopuedesver,esunenlace/pulsable.

SOLUTION

parahacerqueestofuncionara,tuvequeeliminarmisfuncionesdecolumnapersonalizadas,queincluíanmisaccionesdefila.Resultaque,simplementepuedellamaralasaccionesdelafiladiv!Estaeslafunciónquemeayudó,graciasaMilo.

functionsingle_row_columns($item){list($columns,$hidden)=$this->get_column_info();foreach($columnsas$column_name=>$column_display_name){$class="class='$column_name column-$column_name'";

                   $style = '';
                   if (in_array($column_name, $hidden))
                         $style = ' style="display:none;"';

                   $attributes = "$class$style";

                   if ('cb' == $column_name) {
                   echo  "<td $attributes>";
                   echo '<input type="checkbox" name="id[]" value="%s" />', $item['ID'];
                   echo "</td>";
                        }
               elseif ('galname' == $column_name) {
               echo "<td $attributes>";
               echo '<a href="#">', $item['galname'];
               echo "</a>";

                   echo "<div class='row-actions'><span class='edit'>";
           echo sprintf('<a href="?page=%s&action=%s&gid=%s">Edit</a>',$_REQUEST['page'],'edit',$item['id']);
                   echo "</span> | <span class='trash'>";
           echo sprintf('<a href="?page=%s&action=%s&gid=%s">Delete</a>',$_REQUEST['page'],'delete',$item['id']);
           echo "</span></div></td>";
                                                    }
            else {
                echo "<td $attributes>";
                echo $this->column_default( $item, $column_name );
                echo "</td>";
            } } } 

Muchas gracias! Jacob

    
pregunta Jacob Raccuia 23.01.2013 - 22:56

2 respuestas

2

El WP_List_Table class finalmente usa el método single_row_columns para generar cada celda de la tabla. Si observamos ese método, veremos esta parte:

...
elseif ( method_exists( $this, 'column_' . $column_name ) ) {
    echo "<td $attributes>";
    echo call_user_func( array( &$this, 'column_' . $column_name ), $item );
    echo "</td>";
}
...

Agregue un método a su clase para la columna a la que desea agregar funcionalidad / formato adicionales y asígnele el nombre 'column_' . $column_name , luego genere cualquier marca adicional que necesite para envolver el contenido del elemento.

    
respondido por el Milo 26.01.2013 - 20:26
0

Si te refieres a la función "Edición rápida" de las tablas de publicaciones y comentarios: estoy trabajando en un tutorial para esta función pero llevará un tiempo encontrar una solución fácil de entender. Como habrás adivinado, es una mezcla de PHP, jQuery y Ajax.

He buscado en la red cualquier sugerencia sobre cómo implementar la función, pero el único ejemplo disponible es la fuente del núcleo de WordPress.

    
respondido por el Latz 25.01.2013 - 11:41

Lea otras preguntas en las etiquetas