Agregar y ordenar columnas Admin WordPress

agregar y ordenar columnas admin wordpressColumnas Admin WordPress

Para poder agregar y ordenar columnas en las entradas o páginas en el Administrador de WordPress, podemos usar el siguiente código en el archivo functions.php de nuestro tema activo.
En este caso mostraremos el ID y la imágen destacada en las entradas y páginas antes de la columna Autor.

 

/* Para las entradas o posts */

add_action( 'manage_posts_custom_column', 'mi_contenido_nueva_columna', 5, 2 );

/* Para las páginas */

add_filter( 'manage_pages_columns', 'mi_nueva_columna', 5 );
add_action( 'manage_pages_custom_column', 'mi_contenido_nueva_columna', 5, 2 );

/* Título de la columna */


function mi_nueva_columna( $columns ) {
   $columns['my_id'] = 'Id';
   return $columns;
}

/* Contenido de la columna */

function mi_contenido_nueva_columna( $column, $id ) {
  if( 'my_id' == $column ) {
    echo $id;
  }
}

/* Agregar una columna con la imágen principal : Cambiando el tamaño de la imagen proporcionalmente (sin distorsionarla): */

add_image_size( 'mi-imagen-principal', 120, 120, false );

/* Agregar en las entradas o posts las columnas de la imágen principal*/

add_filter('manage_posts_columns', 'mostrar_admin_imagen_miniatura', 2);

/* Agregar en las páginas las columnas de la imágen principal*/

add_filter('manage_pages_columns', 'mostrar_admin_imagen_miniatura', 2);

/* Título de la columna Imágen principal*/

function mostrar_admin_imagen_miniatura($show_columns){
	$show_columns['show_thumb'] = __('Imágen principal');
	return $show_columns;
}

/* Contenido de las imágen en las entradas o posts */

add_action('manage_posts_custom_column', 'ver_contenido_columna_imágen_miniatura', 5, 2);

/* Contenido de las imágen en las páginas */

add_action('manage_pages_custom_column', 'ver_contenido_columna_imágen_miniatura', 5, 2);

/* Aquí mostramos la miniatura */

function ver_contenido_columna_imágen_miniatura($show_columns, $show_id){
	$sw=0;
	switch($show_columns){
		case 'show_thumb':   /* Si la columna es la de la imágen */
			if (has_post_thumbnail()) { /* Si el post o página tiene la imágen miniatura*/
				echo the_post_thumbnail( 'mi-imagen-principal' );
			}else{	/* Si no muetra una imágen en este caso un ? */
				echo '<img src="https://www.edmontoncorporatechallenge.com/Sports%20Icons/unknown-challenge.png" width="34">';
			}
			break;			
		}
}

/* Ordenamos las columnas en las entradas y páginas */

add_filter('manage_posts_columns', 'ordenar_columna');
add_filter('manage_pages_columns', 'ordenar_columna');

function ordenar_columna($columns) {
  $n_columns = array();
  $before = 'author'; /* Movemos la columna antes de la columna author */
  foreach($columns as $key => $value) {
    if ($key==$before){
      $n_columns['my_id'] = ''; 
      $n_columns['show_thumb'] = ''; 
    }
      $n_columns[$key] = $value;
  }
  return $n_columns;
}

 

/* Para las entradas o posts */
add_filter( 'manage_posts_columns', 'mi_nueva_columna', 5 );
add_action( 'manage_posts_custom_column', 'mi_contenido_nueva_columna', 5, 2 );

/* Para las páginas */
add_filter( 'manage_pages_columns', 'mi_nueva_columna', 5 );
add_action( 'manage_pages_custom_column', 'mi_contenido_nueva_columna', 5, 2 );

/* Título de la columna */
function mi_nueva_columna( $columns ) {
   $columns['my_id'] = 'Id';
   return $columns;
}

/* Contenido de la columna */
function mi_contenido_nueva_columna( $column, $id ) {
  if( 'my_id' == $column ) {
    echo $id;
  }
}


/*  Agregar una columna con la imágen principal : Cambiando el tamaño de la imagen proporcionalmente (sin distorsionarla):  */


add_image_size( 'mi-imagen-principal', 120, 120, false );
 
/* Agregar en las entradas o posts las columnas de la imágen principal*/
add_filter('manage_posts_columns', 'mostrar_admin_imagen_miniatura', 2);

/* Agregar en las páginas las columnas de la imágen principal*/
add_filter('manage_pages_columns', 'mostrar_admin_imagen_miniatura', 2);
 
/* Título de la columna Imágen principal*/
function mostrar_admin_imagen_miniatura($show_columns){
	$show_columns['show_thumb'] = __('Imágen principal');
	return $show_columns;
}


 
/* Contenido de las imágen en las entradas o posts   */
add_action('manage_posts_custom_column', 'ver_contenido_columna_imágen_miniatura', 5, 2);

/* Contenido de las imágen en las páginas  */
add_action('manage_pages_custom_column', 'ver_contenido_columna_imágen_miniatura', 5, 2);
 
/* Aquí mostramos la miniatura */
function ver_contenido_columna_imágen_miniatura($show_columns, $show_id){
	$sw=0;
	switch($show_columns){
		case 'show_thumb':   /* Si la columna es la de la imágen */
			if (has_post_thumbnail()) { /* Si el post o página tiene la imágen miniatura*/
				echo the_post_thumbnail( 'mi-imagen-principal' );
			}else{	/* Si no muetra una imágen en este caso un ? */
				echo '<img src="https://www.edmontoncorporatechallenge.com/Sports%20Icons/unknown-challenge.png" width="34">';
			}
			break;			
		}
}

/* Ordenamos las columnas en entradas o posts   */
add_filter('manage_posts_columns', 'ordenar_columna');

/*  Ordenamos las columnas en las páginas   */
add_filter('manage_pages_columns', 'ordenar_columna');

function ordenar_columna($columns) {
  $n_columns = array();
  $before = 'author'; /* Movemos la columna antes de la columna author */
  foreach($columns as $key => $value) {
    if ($key==$before){
      $n_columns['my_id'] = ''; 
      $n_columns['show_thumb'] = ''; 
    }
      $n_columns[$key] = $value;
  }
  return $n_columns;
}

¡¡¡ CLICK PARA VER TODO EL CÓDIGO SEGUIDO !!!

Dejar un comentario

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