Intereting Posts
Вставить wp_editor на интерфейс с AJAX? Как обновить / удалить массив в метатете post? Результаты поиска, когда их не найдено – оставайтесь на странице, на которой они были. Следующее / трассировочное построение страницы через тему PHP Отображать настраиваемое поле определенной должности, где совпадение заголовка соответствует переменной Изменение имени настраиваемого архива типа сообщения Последнее сообщение отсутствует на странице автора Странные проблемы после восстановления после нарушения безопасности Создание многоязычной темы путем добавления пользовательской таксономии к сообщениям и страницам под названием «Языки»? Создайте ссылку на изображение, которая откроется в lighbox Disqus над механизмом комментариев по умолчанию, каковы некоторые плюсы и минусы? Как добавить новое сообщение При нажатии кнопки? Как добавить «текст политики» непосредственно перед комментариями? Получить короткий идентификатор сообщения Пропустить 5 последних сообщений при пейджинге?

Удаление вкладок из медиа-загрузчика для CPT

Я использую медиа-загрузчик в своем мета-окне для персонализированного типа сообщений, называемого «премиум». Thickbox открывается после нажатия кнопки в мета-окне, и файлы могут быть загружены.

Теперь я хочу удалить вкладки «От URL» и «Библиотека» только при использовании загрузчика на странице редактирования / новой страницы для CPT или, если возможно, с вызовом события click.

Я не знаю, как решить.

PS: Я использую этот js для вызова толстого ящика и пытаюсь удалить вкладку через jQuery:

jQuery(document).ready(function() { jQuery('#pc_extContent_button').click(function() { formfield = jQuery('#pc_extContent').attr('name'); tbframe_interval = setInterval(function() { jQuery('#tab-type_url').hide(); }, 2000); tb_show('', 'media-upload.php?type=file&TB_iframe=true') return false; }); 

Solutions Collecting From Web of "Удаление вкладок из медиа-загрузчика для CPT"

Вы можете использовать media_upload_tabs filter для своего типа сообщения и отключить любую вкладку, которую вы не хотите использовать ex:

 function remove_media_library_tab($tabs) { if (isset($_REQUEST['post_id'])) { $post_type = get_post_type($_REQUEST['post_id']); if ('premium' == $post_type) unset($tabs['library']); unset($tabs['type_url']); } return $tabs; } add_filter('media_upload_tabs', 'remove_media_library_tab'); не function remove_media_library_tab($tabs) { if (isset($_REQUEST['post_id'])) { $post_type = get_post_type($_REQUEST['post_id']); if ('premium' == $post_type) unset($tabs['library']); unset($tabs['type_url']); } return $tabs; } add_filter('media_upload_tabs', 'remove_media_library_tab'); не function remove_media_library_tab($tabs) { if (isset($_REQUEST['post_id'])) { $post_type = get_post_type($_REQUEST['post_id']); if ('premium' == $post_type) unset($tabs['library']); unset($tabs['type_url']); } return $tabs; } add_filter('media_upload_tabs', 'remove_media_library_tab'); 

Во-первых, необходимо изменить JavaScript для включения post_id в запрос:

 jQuery(document).ready(function() { jQuery('#pc_extContent_button').click(function() { var pID = jQuery('#post_ID').val(); formfield = jQuery('#pc_extContent').attr('name'); tb_show('premiumTB', 'media-upload.php?post_id='+ pID +'&type=image&TB_iframe=true'); return false; }); window.send_to_editor = function(html) { imgurl = jQuery('img', html).attr('href'); jQuery('#pc_extContent').val(imgurl); tb_remove(); } }); 

Тогда решение Bainternet можно использовать в functions.php (или аналогичном)

 function remove_media_library_tab($tabs) { if (isset($_REQUEST['post_id'])) { $post_type = get_post_type($_REQUEST['post_id']); if ('premium' == $post_type) { unset($tabs['library']); unset($tabs['type_url']); } } return $tabs; } add_filter('media_upload_tabs', 'remove_media_library_tab'); не function remove_media_library_tab($tabs) { if (isset($_REQUEST['post_id'])) { $post_type = get_post_type($_REQUEST['post_id']); if ('premium' == $post_type) { unset($tabs['library']); unset($tabs['type_url']); } } return $tabs; } add_filter('media_upload_tabs', 'remove_media_library_tab'); не function remove_media_library_tab($tabs) { if (isset($_REQUEST['post_id'])) { $post_type = get_post_type($_REQUEST['post_id']); if ('premium' == $post_type) { unset($tabs['library']); unset($tabs['type_url']); } } return $tabs; } add_filter('media_upload_tabs', 'remove_media_library_tab'); 

Таким образом, все работает отлично, и вкладки удаляются.