Intereting Posts
Пользовательский размер изображения в раскрывающемся списке Media В основном, противоположный многосайтовый URL-адрес, который задают большинство людей Разные «WP_CONTENT_URL» для разных подсайтов в настройках Multisite? Просмотр сообщений Запрос с функцией IF Названия терминов таксономии в структуре постоянных отношений типа персонализированного сообщения Как плагин wordpress генерирует страницы без сообщений? get_template_part () на основе get_post_type () для настраиваемого типа post вместо get_post_format () get_users meta_query Как получить php-файл на основе URL-адреса в WordPress Создание связей между несколькими типами контента пользовательские типы taxonomy hide_empty URL-адрес Remap от Относительно Абсолютного Параметры разбиения на страницы с использованием данных xml вместо базы данных? Может ли WP дать значение идентификатор сообщения? the_excerpt () не показывает ручную выдержку для страниц

пользовательский миниатюра администратора для видео, а не получение идентификатора сообщения?

На странице редактирования вложений я пытаюсь использовать выбранную миниатюру вместо значка по умолчанию. 99% пути, но я не могу получить идентификатор вложения в функцию.

Мне что-то не хватает? Помогите оценить! Округ Колумбия.

function set_attachments_icon($icon, $mime = null, $post_id){ $vars = get_defined_vars(); print_r($vars); echo " ??".$icon."?? ".$post->id.' '.$post_id.' ?? id not getting picked up?'; $thumb_id = get_post_meta($post->ID,'dsv_thumbnail_id', true); if($thumb_id!=''){ $image_attributes = wp_get_attachment_image_src( $thumb_id ); $icon = $image_attributes[0]; } return $icon; } add_filter('wp_mime_type_icon', 'set_attachments_icon'); apply_filters( 'wp_mime_type_icon', $icon, $mime, $post_id ); 

Во-первых, вам не нужны apply_filters ниже. Это вызвано непосредственно из функции wp_mime_type_icon ().

Проблема в том, что ваш вызов add_filter () не имеет параметра $ accepted_args. Функция add_filter () имеет следующую конструкцию:

 add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) 

Таким образом, $ accepted_args равен 1 по умолчанию. Из-за этого в вашу функцию передается только первый аргумент $ icon. При добавлении фильтра необходимо использовать следующий код:

 add_filter('wp_mime_type_icon', 'set_attachments_icon', 10, 3); 

Вызов apply_filters выглядит следующим образом:

 apply_filters( 'wp_mime_type_icon', $icon, $mime, $post_id ); // Last arg is 0 if function pass mime type. 

Похоже, это передает post_id напрямую, а не объект post. Это было бы так! Попробуйте использовать этот код (обратите внимание, что я не пробовал, мы просто стреляем из бедра)

 function set_attachments_icon($icon, $mime, $post_id){ if (!$post_id) return $icon; $thumb_id = get_post_meta($post_id,'dsv_thumbnail_id', true); if($thumb_id){ $image_attributes = wp_get_attachment_image_src( $thumb_id ); $icon = $image_attributes[0]; } return $icon; } add_filter('wp_mime_type_icon', 'set_attachments_icon', 10, 3); 

Для меня, однако, это не попало в цепочку из-за image_downsize в wp-includes / media.php строке 607. Вы можете перехватить это, чтобы делать то, что вам нужно сделать тоже.

 function set_attachments_downsize($return, $attachment_id, $size){ if ( $size == 'thumbnail' && $thumb_id = get_post_meta($attachment_id,'dsv_thumbnail_id', true) ) { $image_attributes = wp_get_attachment_image_src( $thumb_id ); return $image_attributes[0]; } return $return; } add_filter('image_downsize', 'set_attachments_downsize', 10, 3); 

Приветствия ~