Intereting Posts
Как я могу запустить AJAX при событии нажатия кнопки? Wesbite супер медленный на iphone / очень быстро на рабочем столе с тем же соединением на Wi-Fi Каков рекомендуемый метод переноса сайта wordpress в wordpress Multisite? Как запустить php-файл, который использует функции wordpress из командной строки? Пользовательский add_rewrite_rule & permalinks Переписать постоянную ссылку для нескольких типов сообщений (CPT) с таксономическим сроком Используйте пользовательский ходок, чтобы добавить термины таксономии в главное навигационное меню Избранные изображения в RSS-ленте Я хотел бы удалить URL и описание из заголовка Просмотр профиля с защитой паролем Как изменить свой RSS-канал по умолчанию? Есть ли способ получить часть вызывающего шаблона? Укажите размеры изображения Как сделать загрузку CSS в реальном времени на основе параметров, нажатых в настройке темы? Настройка jquery для WordPress

Как получить идентификатор изображения для использования внутри wp_read_image_metadata ()?

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

Для обновления alt text я считаю, что мне нужно использовать update_post_meta($image_id, '_wp_attachment_image_alt', $post_title); но как я могу получить идентификатор изображения? Как я могу сделать var_dump () внутри этого фильтра?

 /** * Add the Media/Image filename to caption, Title * */ function wpsx_5505_modify_uploaded_file_meta($meta, $file, $sourceImageType) { // Get the parent post ID, if there is one if( isset($_REQUEST['post_id']) ) { $post_id = $_REQUEST['post_id']; } else { $post_id = false; } // Only do this if we got the post ID--otherwise they're probably in // the media section rather than uploading an image from a post. if($post_id && is_numeric($post_id)) { // Get the post title $post_title = get_the_title($post_id); // If we found a title if($post_title) { $meta['caption'] = $post_title; } } return $meta; } add_filter('wp_read_image_metadata', 'wpsx_5505_modify_uploaded_file_meta', 1, 3); 

https://stackoverflow.com/a/39683724/2769517

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

Альтернативный текст изображения вложений хранится в метатеге _wp_attachment_image_alt мета-ключе _wp_attachment_image_alt .

В media_handle_upload() и media_handle_sideload() мы имеем:

 $id = wp_insert_attachment($attachment, $file, $post_id); if ( !is_wp_error($id) ) wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); 

wp_insert_attachment() является оболочкой для wp_insert_post() а add_attachment запускается после того, как вложение было записано в таблицу сообщений.

пример

Ниже приведен способ автоматического выбора альтернативного текста в качестве заголовка прикрепленного родительского сообщения во время загрузки через add_attachment :

 /** * Set the attachment image alt as the parent post's title, during upload */ add_action( 'add_attachment', function( $attachment_id ) { // Nothing to do if it's not an image if( ! wp_attachment_is_image( $attachment_id ) ) return; // Get parent post's ID for the image $parent_id = wp_get_post_parent_id( $attachment_id ); // Nothing to do if the image isn't attached to a post if( ! $parent_id ) return; // Get parent post's title $parent_title = get_the_title( $parent_id ); // Nothing to do if the attached post has no title if( empty( $parent_title ) ) return; // Set the image alt as the parent post's title update_post_meta( $attachment_id, '_wp_attachment_image_alt', $parent_title ); } ); 

Заметки

Обратите внимание, что мы не хотим добавлять ключ _wp_attachment_image_alt ко всем вложениям, поэтому мы используем wp_attachment_is_image() для wp_attachment_is_image() только на изображения.

Мы также могли бы подключить wp_update_attachment_metadata или wp_generate_attachment_metadata аналогичным образом, где идентификатор вложения передавался как второй входной вход фильтра.

wp_read_image_metadata() вызывается внутри wp_generate_attachment_metadata() например, для получения данных EXIF ​​и IPTC. Именно здесь OP подключается.

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