Intereting Posts
Как создать тему, которая может быть обновлена ​​людьми, использующими тему на своем сайте Категория исключения Скрипт Enque, основанный на параметре url Как мой плагин отображает заполненное новое почтовое окно Многоступенчатая форма, настраиваемый плагин Невозможно загрузить определенный тип файла .zip через интерфейс в WordPress 4.0 Как экспортировать / импортировать категории и сохранить их идентификаторы? Отображение сообщения при регистрации пользователя W3 Общий кэш активен, но не работает Проверить загруженную загрузку Twitter Почему WP загружает так много файлов в начале исходного кода? Как его оптимизировать? Использование комментариев WordPress на странице пользовательских плагинов Добавить тэг таксономии типа публикации в класс статьи Показывать только начало публикации Добавьте встроенный HTML в сообщения, опубликованные в течение последних 24 часов

Переименуйте кнопку вставки в окне загрузки мультимедиа

У меня есть несколько разных типов сообщений, каждый из которых имеет загрузку мультимедиа. Я хочу сделать это, чтобы переименовать кнопку «Вставить в сообщение», чтобы она соответствовала отдельным пользовательским сообщениям. Например, пользовательский тип сообщения – «награда», а затем в поле массовой загрузки будет следующая кнопка «Вставить в награду».

Есть идеи?

Я думаю, это не так просто, на медиа-странице в Admin-area невозможно проверить post_type вашего CPT. Например, вы можете изменить строки с помощью небольшого источника.

if ( is_admin() ) add_filter( 'gettext', array( 'fb_string_translate', 'gettext_filter' ), 10, 1 ); class fb_string_translate { static function gettext_filter( $str ) { $from_to = array(); $post_type = get_post_type(); if ( 'my_post_type' === $post_type ) $from_to = array( 'Insert into Post' => 'Insert into Test' ); return strtr($str, $from_to); } } 

Но важно, чтобы вы проверяли, на какой странице находится автор в admin и на iframe медиа-страницы, невозможно прочитать post_type; возможно, вы найдете этот var, а затем это возможно с источником примера.

[Обновить]
Сначала я сделал глупый подход и полностью переписал свой ответ из-за этого поста Стивена Харриса . Результат: теперь он намного компактнее.

Я попытался адаптировать фильтр @ bueltge в свой код, но не смог.

В моем решении используется jQuery для управления строками.
На вкладке « От компьютера » я добавляю функцию, которая запускается каждую половину секунды, чтобы иметь возможность изменять текст кнопки, когда она появляется (после загрузки).

В этом примере речь идет о двух CPT: «movie» и «woo_estate».

 /* * Change the text "Use this Image"/"Insert into Post" on the upload window to "Insert into CPT" */ function wpse_26585_script_enqueuer(){ global $current_screen; $post_id = !empty( $_GET['post_id'] ) ? (int) $_GET['post_id'] : 0; $post_type = get_post_type($post_id); if( 'media-upload' == $current_screen->id && ('movie' == $post_type || 'woo_estate' == $post_type) ) { // VAR DECLARATION $select = ""; if('movie' == $post_type) $select = "Insert into Movie"; if('woo_estate' == $post_type) $select = "Insert into Property"; // FIND CURRENT TAB $tab = isset($_GET['tab']) ? $_GET['tab'] : "type"; // CHANGE NAMES IN UPLOAD MEDIA TAB and UPDATE "SAVE ALL CHANGES" LINK TO INCLUDE OUR PARAMETER IN THE QUERY $jquery = ('type' == $tab) ? 'var refreshUpload = setInterval(function(){$("#media-items").each(setButtonNames);},500);' : '$("#media-items").each(setButtonNames);'; //CHANGE BUTTON NAMES echo <<<HTML <script type="text/javascript"> function setButtonNames() { jQuery(this).find('.savesend .button').val('{$select}'); } jQuery(document).ready(function($){ {$jquery} }); </script> HTML; } } add_action('admin_head', 'wpse_26585_script_enqueuer');