Colores de celda de tabla personalizados en el panel de administración de WordPress

Siempre pensé que sería interesante poder cambiar las filas de las publicaciones de color de fondo de acuerdo con diferentes criterios en la administración de WordPress. Entonces, miré a mi alrededor y encontré algunos tutoriales para hacerlo. Pero lo malo es que todos los tutoriales tenían el mismo código, probablemente un simple copiar y pegar. Y además, después de algunas pruebas, vi que todas estas publicaciones estaban incompletas. Es por eso que decidí profundizar un poco más en la explicación de cómo agregar colores de fondo específicos a la fila de publicaciones. ¡Y para hacerlo, vamos a crear un nuevo complemento!

Paso 1: el complemento

Ok, entonces, para empezar, necesitamos crear un complemento, como vimos en mis publicaciones anteriores, esta es la parte más simple. Cree una nueva carpeta en wp-content / plugins y asígnele el nombre “color-my-posts”. Dentro de él, cree un nuevo archivo y llámelo…. “Color-my-posts.php” (¡por favor, no crea que no tengo imaginación!). Abra este archivo y agregue este código:


Lo que esto hace es simplemente decirle a WordPress que hay un nuevo complemento llamado "Color de mis publicaciones" dentro de su carpeta de complementos. Ahora su complemento, incluso si está vacío, debería aparecer en la lista de complementos en el menú "Complementos". En el siguiente paso, crearemos una clase simple para instanciar el complemento.

Paso 2: la clase principal

Como creamos una clase en mi tutorial sobre cómo agregar atributos personalizados a los menús de WordPress, necesitamos hacer lo mismo y crear una clase, así es como se hace:

class rc_color_my_posts {

	/*--------------------------------------------*
	 * Constructor
	 *--------------------------------------------*/

	/**
	 * Initializes the plugin
	 */
	function __construct() {

		add_action('admin_footer', array( &$this,'rc_color_my_admin_posts') );

	} // end constructor

	function rc_color_my_admin_posts(){
		/* Be patient ! */
	}

}

// instantiate plugin's class
$GLOBALS['color_my_posts'] = new rc_color_my_posts();

Aquí estamos creando una clase llamada “rc_color_my_posts que contiene un constructor y una función llamada rc_color_my_admin_posts (). En el constructor estamos conectando la función rc_color_my_admin_posts () a admin_footer. Esto significa que nuestra función se tendrá en cuenta durante la carga del pie de página de administración. Ahora todo lo que tenemos que hacer es agregar código CSS a nuestra función. Este código se imprimirá directamente en el código fuente de las páginas de administración de WordPress.

Paso 3: Estilo de las publicaciones

Como dije antes, todos los tutoriales que hablan sobre el estilo de la fila de publicaciones en la administración de WordPress que vi, solo tratamos con el estado de las publicaciones. Eso es cierto, puede diseñar publicaciones fila por estado de publicación, pero no solo. Para aquellos que estén interesados, hay una función llamada get_post_class () en el archivo principal /wp-includes/post-template.php. Por si acaso - ¡No modifique el código de este archivo (al menos ni por ahora)!

Bueno, esta función get_post_class () es excelente porque es la responsable de determinar las clases posteriores. Esta función se utiliza en la administración y en el frontend. A continuación, se explica cómo agregar código CSS personalizado para cada clase generada por get_post_class:

function rc_color_my_admin_posts(){
 ?>
 
 

Como este código no es complicado, agregué comentarios en el código mismo. Básicamente, para diseñar filas mediante:

  • Estado de la publicación, use .status-xxx donde xxx es el estado de la publicación
  • Autor, use .author-self para orientar las publicaciones que escribió, y .author-other para publicaciones escritas por otros autores
  • Formato de publicación, use .format-xxx donde xxx es el formato de publicación
  • Categoría de publicación, use .category-xxx donde xxx es la categoría slug, puede apuntar a tantas categorías como desee
  • Tipo de mensaje, use .xxx o .type-xxx donde xxx es el tipo de publicación slug, puede apuntar a tantos CPT como desee
  • ID del mensaje, use .post-xxx donde xxx es el ID de la publicación, puede apuntar a tantas publicaciones como desee
  • Etiqueta de publicación, use .tag-xxx, donde xxx es la etiqueta slug, puede apuntar a tantas etiquetas como desee
  • .hentry se utiliza para apuntar hátomo cumplimiento

No he establecido colores para todas las clases, pero puede hacerlo usted mismo y personalizar el complemento para que se vea como realmente desea.

¿Qué pasa con las publicaciones fijas?

Cuando estaba trabajando en este pequeño complemento, noté que no se había agregado ninguna clase a las publicaciones fijas. Bueno, al menos en la administración. Así que volví al archivo post-template.php y vi que hay una clase .sticky agregada a la publicación adhesiva, pero solo si is_home () &&! Is_paged ()… ¿por qué? Eso es realmente extraño. Esa es la razón por la que creé un ticket en la pista principal de WordPress para mencionarlo. Para aquellos que realmente quieren poder diseñar publicaciones fijas en el administrador, simplemente agregue este código a la función get_post_class () incluso si recomiendo nunca modificar los archivos centrales de WordPress:

// sticky for Sticky Posts in administration
if ( is_sticky($post->ID) && is_admin() )
$classes[] = 'post-sticky';

Descarga el complemento

Para aquellos que quieran usar el complemento directamente sin tener que crearlo usted mismo, agregué el complemento al repositorio, simplemente haga clic aquí para descargarlo.