Миниатюры в список записей админки wordpress
Следующий код, добавленный в functions.php, покажет в общем списке записей админки wordpress миниатюры записей. Очень удобно, странно что этот функционал изначально недоступен при установке движка..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
if(1){ add_action('init', 'add_post_thumbs_in_post_list_table', 20 ); function add_post_thumbs_in_post_list_table(){ // проверим какие записи поддерживают миниатюры $supports = get_theme_support('post-thumbnails'); // $ptype_names = array('post','page'); // указывает типы для которых нужна колонка отдельно // Определяем типы записей автоматически if( ! isset($ptype_names) ){ if( $supports === true ){ $ptype_names = get_post_types(array( 'public'=>true ), 'names'); $ptype_names = array_diff( $ptype_names, array('attachment') ); } // для отдельных типов записей elseif( is_array($supports) ){ $ptype_names = $supports[0]; } } // добавляем фильтры для всех найденных типов записей foreach( $ptype_names as $ptype ){ add_filter( "manage_{$ptype}_posts_columns", 'add_thumb_column' ); add_action( "manage_{$ptype}_posts_custom_column", 'add_thumb_value', 10, 2 ); } } // добавим колонку function add_thumb_column( $columns ){ // подправим ширину колонки через css add_action('admin_notices', function(){ echo ' <style> .column-thumbnail{ width:80px; text-align:center; } </style>'; }); $num = 1; // после какой по счету колонки вставлять новые $new_columns = array( 'thumbnail' => __('Thumbnail') ); return array_slice( $columns, 0, $num ) + $new_columns + array_slice( $columns, $num ); } // заполним колонку function add_thumb_value( $colname, $post_id ){ if( 'thumbnail' == $colname ){ $width = $height = 45; // миниатюра if( $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true ) ){ $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true ); } // из галереи... elseif( $attachments = get_children( array( 'post_parent' => $post_id, 'post_mime_type' => 'image', 'post_type' => 'attachment', 'numberposts' => 1, 'order' => 'DESC', ) ) ){ $attach = array_shift( $attachments ); $thumb = wp_get_attachment_image( $attach->ID, array($width, $height), true ); } echo empty($thumb) ? ' ' : $thumb; } } } |
Рассказать:
Есть хорошее решение для добавления редактируемой колонки миниатюр: https://wp-store.ru/how-to-install-a-thumbnail-from-the-list-of-entries-in-the-admin/