Вопрос или проблема
В настроенном медиаменеджере (база версии 3.5) я хотел бы, чтобы кнопка “выбрать файл” оставалась отображаемой, даже когда некоторые файлы уже загружены в альбом. Есть ли простое решение?
Извините за формат моего кода. Пожалуйста, кто-нибудь, помогите мне отредактировать этот код.
“Используйте приведенный ниже код в файле функций вашей темы. После этого опция будет отображаться в Админка> внешний вид> Главная страница ниже изображения 1. Оттуда вы можете загрузить изображение.”
function register_my_logo(){ register_setting('logo_options_group','logo_options_group'); }add_action( 'admin_init', 'register_my_logo' );
function add_logo_page_to_settings() {
add_theme_page('Логотип темы',
'Главная страница ниже изображения 1 ->',
'manage_options',
'edit_logo',
'logo_edit_page'); }
add_action('admin_menu', 'add_logo_page_to_settings');
function logo_edit_page() {?>
<div class="section panel">
<h1>Настройка изображений на главной странице и изменение URL</h1>
<form method="post" enctype="multipart/form-data" action="options.php">
<?php settings_fields('logo_options_group'); // это появится позже
do_settings_sections('logo_options_group'); // и это тоже...
?>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Сохранить изменения') ?>" />
</p>
</form>
<?php }function add_logo_options_to_page(){add_settings_section(
'custom_logo',
'Настройте изображение на главной странице сайта:',
'custom_logo_fields',
'logo_options_group' );
$args=array(); // передать аргументы в add_settings_array для использования в полях
add_settings_field( 'logo_url', "изображение", 'logo_upload_url' , 'logo_options_group', 'custom_logo', $args );
add_settings_field('title','Заголовок','logo_upload_url','logo_options_group','logo_options_group',$args);
add_settings_field(
'cus_url', //id
'Пользовательский URL', //title
'logo_upload_url', //callback
'logo_options_group', //page
'logo_options_group', //section
$args
);}
add_action('admin_init','add_logo_options_to_page');
function logo_upload_url($args){$options=get_option('logo_options_group') ;?>
<br><label for="upload_image"><input id="url" type="text" size="36" value="<?php echo $options['url']; ?>" name="logo_options_group[url]" /><input id="upload_logo_button" type="button" value="Загрузить изображение" /><br />Введите URL или загрузите изображение для баннера.</label>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#upload_logo_button').click(function() {
formfield = jQuery('#url').attr('name');
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
return false;});
window.send_to_editor = function(html) {
imgurl = jQuery('img',html).attr('src');
jQuery('#url').val(imgurl);
tb_remove(); }});</script>
<?php if($options['url']){
echo "<br>Это ваш текущий логотип: <br><img src="". $options["url'] ."' style="padding:20px;" />";
echo "<br>Чтобы использовать его в теме, скопируйте это: <blockquote>". htmlspecialchars("<?php do_shortcode('[sitelogo]'); ?>") ."</blockquote><br> Чтобы использовать это в посте или странице, скопируйте этот код:<blockquote>[sitelogo]</blockquote>"; } ?>
<br>Это ваш текущий заголовок: <br><input type="text" id="title" name="logo_options_groupWordPress Медиаменеджер кнопка выбора файла, как предотвратить скрытие?
" value="<?php echo $options['title']; ?>" /> <br>Это ваш текущий URL: <br><input type="text" id="cus_url" name="logo_options_group[cus_url]" value="<?php echo $options['cus_url']; ?>" />
<?php}function custom_logo_fields(){**// вы можете добавить что-то здесь, если хотите...**}
function my_admin_scripts() {wp_enqueue_script('media-upload');wp_enqueue_script('thickbox');}
function my_admin_styles() { wp_enqueue_style('thickbox'); }
if (isset($_GET['page']) && $_GET['page'] == 'edit_logo') {add_action('admin_print_scripts', 'my_admin_scripts'); add_action('admin_print_styles', 'my_admin_styles'); }
function get_site_logo(){$option=get_option("logo_options_group"); if($option['url']){echo "<img src="". $option["url"] ."' />";} else {echo "Извините, логотип не выбран";}} add_shortcode('sitelogo', 'get_site_logo');
Затем, чтобы отобразить это изображение в вашем шаблоне, используйте этот код.
<?php $option=get_option('logo_options_group') ; ?>
<div><a href="https://wordpress.stackexchange.com/questions/166995/<?php echo $option["cus_url']; ?>"><?php do_shortcode('[sitelogo]'); ?><?php echo $option['title']; ?></a></div>
Ответ или решение
Чтобы предотвратить скрытие кнопки «Выбрать файл» в медиа-менеджере WordPress, даже если некоторые файлы уже загружены в альбом, необходимо внести определенные изменения в код, отвечающий за логику отображения этой кнопки.
Решение проблемы
Наиболее эффективный способ добиться желания – это применение фильтров и хуков WordPress. Ваша цель заключается в том, чтобы изменить поведение медиа-менеджера, позволяя пользователям всегда видеть и использовать кнопку «Выбрать файл». Для этого можно сделать следующее:
-
Использование JavaScript для управления отображением кнопки.
Мы можем добавлять jQuery-скрипт, который будет проверять наличие загруженных файлов и в случае их наличия не скрывать кнопку.
-
Редактирование функции вывода кнопки выбора файла.
Необходимо изменить или добавить к функционалу код, который отвечает за отображение кнопки. Убедитесь, что класс или ID, который используется для скрытия этой кнопки, не применим в вашем контексте.
Пример кода
Вот пример кода, который можно добавить в файл functions.php
вашей темы:
function custom_media_manager_script() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
// Проверяем, есть ли уже загруженные изображения
if ($('.uploaded-image-class').length > 0) { // Замените на корректный селектор
$('#upload_logo_button').show(); // Показываем кнопку выбора файла
} else {
$('#upload_logo_button').hide(); // Скроем, если изображений нет
}
});
</script>
<?php
}
add_action('admin_footer', 'custom_media_manager_script');
Инструкция по установке
- Откройте файл
functions.php
вашей активной темы. - Вставьте приведенный выше код.
- Замените
'.uploaded-image-class'
на селектор, который на самом деле используется для загруженных изображений в вашем конкретном интерфейсе. - Обновите страницу админки и проверьте, отображается ли кнопка «Выбрать файл» даже при наличии загруженных изображений.
Дополнительные аспекты
- Тестирование: После внесения изменений, обязательно протестируйте, чтобы убедиться, что кнопка работает правильно в различных браузерах и сценариях.
- Системные обновления: Убедитесь, что код совместим с вашей версией WordPress и не нарушает других функций темы или плагинов.
Заключение
Таким образом, путем правильного использования JavaScript и хуков WordPress, вы можете управлять отображением кнопки «Выбрать файл» в медиа-менеджере, сохраняя ее видимой для пользователей в случае уже загруженных файлов. Это не только улучшит пользовательский интерфейс, но и ускорит процесс работы с медиа-контентом.