Фильтр image_size_names_choose не показывает

Я создал новый размер изображения, используя add_image_size (), и хочу, чтобы он был указан в размере образа медиа-библиотеки, когда я его вставляю. Поэтому у меня есть следующий код:

add_image_size( "grade-image", 320, 300, true ); function sgr_display_image_size_names_muploader( $sizes ) { $new_sizes = array( "0" => "grade-image", ); /* $added_sizes = get_intermediate_image_sizes(); // $added_sizes is an indexed array, therefore need to convert it // to associative array, using $value for $key and $value foreach( $added_sizes as $key => $value) { $new_sizes[$value] = $value; } */ // This preserves the labels in $sizes, and merges the two arrays $new_sizes = array_merge( $new_sizes, $sizes ); return $new_sizes; } add_filter('image_size_names_choose', 'sgr_display_image_size_names_muploader', 11, 1); 

однако он не отображает размер ранга. Я попробовал комментируемый блок, чтобы показать список всех размеров изображения, и он отображает некоторые другие размеры изображения, но не одноклассное изображение. Я действительно озадачен.

Solutions Collecting From Web of "Фильтр image_size_names_choose не показывает"

Нет, похоже, что все работает правильно. Вы можете проверить это, сделав

 <?php echo get_the_post_thumbnail('grade-image'); ?> 

попробуй это.

 add_image_size( "grade-image", 320, 300, true ); add_filter( 'image_size_names_choose', 'my_custom_sizes' ); function my_custom_sizes( $sizes ) { return array_merge( $sizes, array( 'grade-image' => __('Grade Image'), ) ); } 

Код Дэвида, вероятно, будет работать, но вы не должны использовать функцию add_image_size () таким образом. Посмотрите пример ниже:

 add_action( 'after_setup_theme', 'my_custom_image_sizes' ); function my_custom_image_sizes() { if ( function_exists( 'add_image_size' ) { add_image_size( "grade-image", 320, 300, true ); } } add_filter( 'image_size_names_choose', 'my_custom_sizes' ); function my_custom_sizes( $sizes ) { return array_merge( $sizes, array( 'grade-image' => __('Grade Image'), ) ); } 

Убедитесь, что вы используете hook 'after_setup_theme', чтобы избежать ошибок несовместимости 🙂