Personalización de las tablas de administración de WordPress: modificaciones avanzadas

Publicado: 2021-01-26

En nuestro primer artículo de nuestra serie sobre la personalización de las tablas de administración de WordPress, vimos cómo aplicar una configuración básica a las pantallas de administración de nuestros tipos de publicaciones, incluida la adición de una columna personalizada y su ordenación.

Hoy daremos un paso más y veremos algunas modificaciones adicionales que se pueden aplicar a la tabla de administración de la lista de publicaciones. ¡Vámonos!

Mejorando la tabla de publicaciones de administración de WordPress

Proporcionar información adicional en la pantalla de su tabla de administración para sus usuarios de back-end definitivamente mejorará su experiencia de flujo de trabajo. En este tutorial, nuestro objetivo será mejorar los datos que se muestran en nuestra tabla de administración posterior agregando información, modificando el contenido existente, reordenando las columnas e incluso eliminando las columnas innecesarias de la tabla.

Mostrar imágenes destacadas

Sería realmente útil agregar una miniatura destacada a la lista de publicaciones de su tabla de administración. Esto realmente aceleraría la capacidad de ver si una publicación tiene la imagen incorrecta (o quizás no tiene ninguna imagen) sin tener que abrir cada publicación individual.

Para lograr esto, crearemos una columna de imagen destacada para la página de edición de nuestra publicación y la completaremos con una miniatura de imagen. Como se muestra en nuestro artículo anterior, usaremos manage_posts_columns . Si aún no ha leído este artículo, hágalo, ya que incluye parte del código necesario para este tutorial.

Si leyó el artículo y lo siguió, debería tener el siguiente código en el archivo functions.php de su tema activo. Si no es así, ¡añádelo!

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; } }

Para mostrar la imagen destacada en nuestra tabla de administración, debemos editar este código de la siguiente manera:

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; $columns['my_post_thumbs'] = 'Thumbs'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; case 'my_post_thumbs': echo the_post_thumbnail( 'thumbnail' ); break; } }

Los números, 10 y 2 en el tercer y cuarto argumento, dictan la prioridad en la que se procesarán las funciones asociadas a esta acción. Estos argumentos se pasarán a nuestra función custom_columns_content .

El valor predeterminado para la prioridad es 10. El número 2 muestra la cantidad de argumentos de la función. Entonces, en nuestro caso, es importante incluir estos números ya que tenemos 2 argumentos, a saber, $column_id y $post_id .

Ahora, con este código guardado, veamos qué tenemos en nuestra pantalla de publicaciones de administrador.

Imágenes destacadas de la tabla de administración de WordPress

Como puede ver, ahora tenemos una columna 'Última modificación' y nuestra nueva columna 'Thumbs'.

Cambiar etiquetas de columna

Supongamos que por alguna razón queremos cambiar la etiqueta de una columna, por ejemplo, cambiar el nombre de la columna 'Autor' a 'Escritor'. Para hacer esto, simplemente podemos definir la nueva etiqueta de la misma manera que agregamos nuestra columna personalizada. Una vez más, para mantener nuestro código más distintivo, separaremos los fragmentos de código de cambio de nombre usando una función diferente.

 add_filter('manage_posts_columns','rename_columns'); function rename_columns( $columns ) { $columns['author'] = 'Writer'; return $columns; }

Por supuesto, puede cambiar la etiqueta de varias columnas en el mismo fragmento de código simplemente agregando $columns['COLUMN_ID'] = 'NEW_LABEL'; justo antes return $columns;

Mejorar la tabla de páginas de administración de WordPress

Es posible que no sepa esto, pero las páginas de WordPress son un tipo de publicación jerárquica, lo que significa que cada página puede tener una página principal.

Podría ser realmente útil ver de un vistazo qué página es la página principal de cualquier página secundaria. Echemos un vistazo a cómo hacer esto.

Agregue una columna personalizada que muestre la publicación principal

Primero, creó algunas páginas principales y secundarias con algunas imágenes destacadas asociadas.

Publicaciones principales y secundarias de la tabla de administración de WordPress

A continuación, pondremos algo de código en nuestro archivo functions.php . Vamos a seguir el mismo proceso que hicimos con el tipo Publicaciones con respecto a agregar lo que llamaremos la columna 'Ancestro'.

 add_filter('manage_pages_columns','add_ancestor_column'); function add_ancestor_column( $columns ) { $columns['ancestor'] = 'Ancestor'; return $columns; }

Lo mismo ocurre con la colocación de la columna en la posición deseada en la tabla. Reordenaremos las columnas de la tabla para que la columna "Antepasado" esté antes que la columna Autor.

 add_filter('manage_pages_columns', 'change_ancestor_column_position'); function change_ancestor_column_position($columns) { $n_columns = array(); foreach($columns as $key => $value) { if ($key=='author'){ $n_columns['ancestor'] = 'ancestor'; } $n_columns[$key] = $value; } return $n_columns; }

En este punto, en la pantalla de administración de sus páginas, debería ver algo como esto:

Lo último que tenemos que hacer es llenar la columna 'Ancestor' con el contenido correcto. Debido a que esta vez estamos trabajando con un tipo de publicación jerárquica, usaremos un gancho diferente para obtener el contenido de la columna. Intente insertar este fragmento de código y verifique el resultado.

 add_action( 'manage_pages_custom_column','ancestor_column_content', 10, 2 ); function ancestor_column_content ( $column_id, $post_id ) { switch( $column_id ) { case 'ancestor': $ancestors = get_ancestors($post_id, 'subject', 'post_type'); $post_ancestor = end($ancestors); if ($post_ancestor != 0) { echo '<a href="' . get_edit_post_link($post_ancestor) . '">' . get_the_title($post_ancestor) . '</a>'; } else { echo '-'; } break; } }

Ahora debería ver la página principal asociada junto con sus páginas secundarias en la columna "Antepasado".

Esto es particularmente útil si el orden de sus páginas en la tabla de administración se interrumpe (por ejemplo, porque están ordenadas por fecha de publicación, etc.) y, por lo tanto, las páginas secundarias ya no aparecen ordenadamente debajo de sus respectivas páginas principales.

Alteración de las columnas predeterminadas

Hay varias cosas que se pueden hacer para mejorar las columnas de la tabla de administración predeterminada. Echemos un vistazo a algunos de estos.

Reordenación de columnas

En nuestro artículo anterior sobre la personalización de las tablas de administración, agregamos una nueva columna que muestra la fecha en que se modificó por última vez la publicación. Pero, ¿y si queremos cambiar su posición en el orden de las columnas?

Afortunadamente, esto es bastante fácil y se puede implementar usando el manage_posts_columns .

Lo que hay que definir es la columna que hay que mover y la columna inmediatamente anterior a donde queremos colocar nuestra columna. Entonces, si, por ejemplo, queremos que la imagen de la característica sea la primera columna de la tabla, tendremos que moverla antes de la columna del título. El código de la pieza correspondiente debería ser así:

 add_filter('manage_posts_columns', 'change_column_order'); function change_column_order($columns) { $n_columns = array(); $move = 'author'; // what to move $before = 'title'; // move before this foreach($columns as $key => $value) { if ($key==$before){ $n_columns[$move] = $move; } $n_columns[$key] = $value; } return $n_columns; }

¡Y voilá!

agregue imágenes destacadas a sus tablas de administración de WordPress

Quitar una columna

Ocasionalmente, algunas columnas de la tabla de la lista de publicaciones no son particularmente útiles y sería mejor eliminarlas para liberar espacio. Un candidato común para esto es la columna de comentarios.

Afortunadamente, es muy fácil eliminar una columna de nuestra tabla. Solo tenemos que agregar unset($columns['comments']); en la función de gancho manage_posts_columns . Si bien esto podría agregarse a nuestro código existente, es mejor si podemos separarlo en su propio fragmento de código, ya que tiene un propósito diferente e introduce una nueva función en el gancho.

 add_filter('manage_posts_columns' , 'remove_columns'); function remove_columns($columns) { unset($columns['comments']); return $columns; }

Y eso es. Actualice su pantalla de administración y debería ver que la columna Comentarios ha desaparecido.

Nota: si no está seguro de cuál es el ID de una columna, puede detectarlo utilizando la consola de inspección de su navegador.

El complemento de columnas de administración

Si no desea codificar cambios en sus tablas de administración de WordPress, no se preocupe... como se trata de WordPress, hay un complemento que le permitirá realizar una serie de actualizaciones sin tener que tocar una línea de código. Se llama Columnas de administración.

Nota: Antes de continuar con la instalación/activación del complemento, es mejor que revierta todas las personalizaciones en la tabla de la lista de publicaciones (si ha realizado alguna) y comience a usar el complemento con la tabla de publicaciones del administrador en su estado inicial.

Una vez que haya descargado e instalado el complemento, vaya al elemento de menú Configuración > Columnas de administración. Desde aquí, puede seleccionar la tabla de la lista de publicaciones (o cualquier otro tipo de publicación en el que desee poder editar su tabla de administración) de la lista desplegable. Luego se le mostrará la estructura de la tabla actual.

Ahora, utilizando una interfaz de arrastrar y soltar, puede reordenar fácilmente las columnas. También puede editar la etiqueta de tipo y el ancho utilizando el icono de flecha para ver su configuración.

Y sí, ¡incluso puede agregar sus propias columnas usando el botón 'Agregar columna' en la parte inferior derecha!

Lo que el complemento realmente hace aquí es recopilar todas las opciones disponibles de las tablas de la base de datos que se relacionan con el tipo de Publicaciones y les proporciona el menú desplegable Tipo. Entonces, si, por ejemplo, desea agregar una columna 'Última modificación' como lo hicimos antes, simplemente búsquela y selecciónela en la lista Tipo y luego asígnele la etiqueta y el ancho deseado.

Después de eso, puede cambiar las opciones de formato de fecha que aparecerán si lo desea.

Conclusión

Tener la información correcta en sus tablas de administración de WordPress realmente puede acelerar su flujo de trabajo y ayudar a prevenir errores en su sitio web. Por ejemplo, es mucho menos probable que publique una publicación a sabiendas sin una imagen destacada cuando puede ver todas sus publicaciones y sus imágenes destacadas asociadas de un vistazo en la tabla Administración de publicaciones. Juega y configura tus tablas de administración para que se adapten a ti y a tu flujo de trabajo.