Columna de imagen destacada en la lista de entradas del panel de administración
Tengo un sitio de cliente que acepta imágenes de los usuarios como entradas. Para la moderación, estamos abriendo cada borrador de entrada, lo que obviamente lleva mucho tiempo si hay que moderar una gran cantidad de imágenes.
Entonces, ¿hay alguna manera de mostrar las imágenes destacadas de la entrada en la página de lista de entradas del administrador como una columna?
Utiliza este hook para añadir una columna personalizada a la vista de lista de entradas/páginas en el administrador.
add_filter('manage_posts_columns', 'add_img_column');
add_filter('manage_posts_custom_column', 'manage_img_column', 10, 2);
function add_img_column($columns) {
$columns['img'] = 'Imagen destacada';
return $columns;
}
function manage_img_column($column_name, $post_id) {
if( $column_name == 'img' ) {
echo get_the_post_thumbnail($post_id, 'thumbnail');
}
return $column_name;
}
Coloca este código en tu archivo functions.php
¿Estás seguro de que tu publicación tiene imagen destacada? ¿Puedes mostrarme una captura de pantalla? Este código funciona bien para mí.
Mangesh Parte
http://i.imgur.com/UM67XYl.jpg aquí está
busyjax
Te pedí que mostraras una captura de pantalla de la imagen destacada en la publicación individual. Dónde la has subido. Es decir http://mervin.info/wp-content/uploads/2012/03/screenshot-1-300x209.png
Mangesh Parte
Tuve que cambiar la segunda función a lo siguiente: echo get_the_post_thumbnail($post_id, 'thumbnail'); return true;
PNMG
Necesita que la segunda función muestre (echo) la imagen, no que la retorne (return).
Jake
@busyjax ¿podrías ampliar la información? ¿Cuál era el problema y cómo lo resolviste?
Peter Kionga-Kamau
Quería mostrar una columna de miniaturas pequeñas que eran las imágenes destacadas de los posts, para así poder moderar los posts directamente desde la página de administración de entradas sin necesidad de abrirlos para editarlos.
busyjax
Esto es lo que estoy usando, armado a partir de fragmentos encontrados en línea... Utiliza un filtro en manage_posts_colummns para reorganizar los encabezados y una acción en manage_posts_custom_column para agregar los datos a nivel de fila.
function custom_columns( $columns ) {
$columns = array(
'cb' => '<input type="checkbox" />',
'featured_image' => 'Imagen',
'title' => 'Título',
'comments' => '<span class="vers"><div title="Comentarios" class="comment-grey-bubble"></div></span>',
'date' => 'Fecha'
);
return $columns;
}
add_filter('manage_posts_columns' , 'custom_columns');
function custom_columns_data( $column, $post_id ) {
switch ( $column ) {
case 'featured_image':
the_post_thumbnail( 'thumbnail' );
break;
}
}
add_action( 'manage_posts_custom_column' , 'custom_columns_data', 10, 2 );
También puedes usar esto en tipos de contenido personalizados filtrando en manage_CPTNAME_posts_columns.
Basado en el código de @Mangesh Parte, puedes tener la imagen destacada en la primera columna, antes del título.
add_filter('manage_posts_columns', 'add_img_column');
add_filter('manage_posts_custom_column', 'manage_img_column', 10, 2);
function add_img_column($columns) {
$columns = array_slice($columns, 0, 1, true) + array("img" => "Imagen destacada") + array_slice($columns, 1, count($columns) - 1, true);
return $columns;
}
function manage_img_column($column_name, $post_id) {
if( $column_name == 'img' ) {
echo get_the_post_thumbnail($post_id, 'thumbnail');
}
return $column_name;
}
Este código muestra cómo agregar la columna de imagen destacada a un tipo de publicación personalizada (CPT) llamado 'books'. Reemplaza en la primera línea la palabra 'books' con el slug de tu tipo de publicación personalizada.
add_filter('manage_books_posts_columns', 'add_img_column');
add_filter('manage_posts_custom_column', 'manage_img_column', 10, 2);
function add_img_column($columns) {
$columns = array_slice($columns, 0, 1, true) + array("img" => "Imagen destacada") + array_slice($columns, 1, count($columns) - 1, true);
return $columns;
}
function manage_img_column($column_name, $post_id) {
if( $column_name == 'img' ) {
echo get_the_post_thumbnail($post_id, 'thumbnail');
}
return $column_name;
}
Puedes encontrar más información aquí https://codex.wordpress.org/Plugin_API/Action_Reference/manage_$post_type_posts_custom_column