Intereting Posts
Как можно использовать woocommerce в папке mu-plugins? добавление правила перезаписи в файл функций wordpress Как получить пользовательские данные метабокса из каждого многосайтового блога? Постоянная ссылка, связывает страницу с главной страницей Распространение и упаковка плагинов Получить стандартную ссылку по умолчанию из довольно URL-адресов. Как изменить название тега на свое имя? Как предварительно заполнить URL-адреса Google Forms с помощью зарегистрированных данных пользователя WordPress Как адаптировать upload_dir для сохранения файлов вне папки загрузок WP WordPress meta_query не работает * Woocommerce * Прошедшие заказы исчезли после изменения учетной записи Stripe Скрытие меню на мобильном телефоне только при просмотре сообщений? Обновление тем, настроенных пользователями Обнаружение типа сообщения в действии init url переписать .htaccess расширение на permalink

Настройки галереи Изменить доступные столбцы

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

<label class="setting"> <span><?php _e('Columns'); ?></span> <select class="columns" name="columns" data-setting="columns"> <?php for ( $i = 1; $i <= 9; $i++ ) : ?> <option value="<?php echo esc_attr( $i ); ?>" <?php selected( $i, 3 ); ?>> <?php echo esc_html( $i ); ?> </option> <?php endfor; ?> </select> </label> 

в wp-includes/media-template.php строка 359-369 ( WordPress v3.5 )

В основном я хочу изменить $i <= 9; до $i <= 5; в состоянии выхода цикла.

Я предполагаю, что если я просто сделаю это, он будет отброшен со следующим обновлением WordPress .

Спасибо за вашу помощь

Евгений

Solutions Collecting From Web of "Настройки галереи Изменить доступные столбцы"

Короткий ответ

Простые, как иногда: Нет, это невозможно. Вся часть жестко закодирована.

Длительный ответ (не рекомендуется делать)

Вы могли бы прыгать в фильтры esc_html и attribute_escape и просто возвращать пустые там *), но поскольку они являются довольно универсальными именами и могут также мешать другим результатам фильтрации и, следовательно, нарушать другие вещи.

 <?php /* Plugin Name: (#82379) Empty Media options */ add_filter( 'image_size_names_choose', 'wpse82379_esc_attr' ); function wpse82379_trigger_filter( $sizes ) { if ( 'post' !== get_current_screen()->post ) return $safe_text; add_filter( 'attribute_escape', 'wpse82379_esc_attr', 10, 2 ); add_filter( 'esc_html', 'wpse82379_esc_attr', 10, 2 ); return $sizes; } function wpse82379_esc_attr( $safe_text, $text ) { if ( ! in_array( absint( $text ), range( 6, 9 ) ) ) return $safe_text; static $counter = 0; $static++; // if ( 1 === $static ) { ob_start(); return $safe_text; } if ( in_array( $static, array( 7, 9 ) ) ) { remove_filter( current_filter(), __FUNCTION__ ); if ( 'esc_html' === current_filter() ) { $html = ob_get_contents(); ob_end_clean(); // In case you want to alter the layout, rework $html and return it return ''; } } return $safe_text; } 

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

Внутренние работы и производительность

Чтобы работать против этого, я использовал фильтр, который выполняется до появления вывода HTML-кода, чтобы как можно позже добавить обратные вызовы. Затем я прерываю как можно чаще, чтобы не запускать эти фильтры плагинов на любой другой странице, кроме экрана «добавить новый». После проверки исходных файлов HTML, я вижу, что с версией 3.5 у нас есть только два вызова esc_attr_e() которые внутренне запускают esc_attr и, следовательно, наши фильтры), но с двумя строками, поэтому мы можем безопасно прервать их. Когда мы, наконец, дойдем до наших фильтров, я возвращаю пустую строку и сразу же удаляю фильтр, чтобы не запускаться для последующих вызовов.

Это лучшее, что вы можете достичь.

РЕДАКТИРОВАТЬ

Подумав об этом, я использовал ob кэширование – не красивое, но оно должно работать (если только я не посчитал неправильным). Примечание. Это кодируется при написании и мышлении, поэтому оно не проверено. Вам нужно будет подтвердить, работает оно или нет.

Заключительное примечание: вам нужно будет перепроверить этот плагин после каждой следующей версии (начиная с WP v3.6), чтобы убедиться, что разметка не изменилась и она по-прежнему работает должным образом.

*) Это оставит вас с пустыми строками. Другими словами: они все равно будут там, но не функциональны и пусты (нет строки).

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

Чтобы добиться выбора из 1-5 столбцов, добавьте это в таблицу стилей администратора WordPress. (Возможно, вам нужно создать его.)

Стиль

 .gallery-settings .columns option:nth-child(n+6) { display: none; } 

функция

Сообщите WordPress, чтобы вытащить это, используя wp_enqueue_style в вашем файле PHP в очереди.

 function wp_admin_styles() { wp_enqueue_style('admin-styles', get_template_directory_uri().'/wordpress-admin.css'); } add_action('admin_enqueue_scripts', 'wp_admin_styles'); 

введите описание изображения здесь

Заметки

Если <select> <option> не существует, он не может быть выбран. * В приведенном выше примере целевые параметры, начиная с 6-го ребенка. Обратите внимание, что это будет ограничено только классом .columns в классе .gallery-settings, поэтому вполне можно сказать, что это, вероятно, не вызовет проблем с другими параметрами выбора администратора.

Для моего проекта я нацелен только на девятый вариант с nth-child(9) . Это потому, что я использую блочную сетку Zurb Foundation с выбором 1-8 столбцов. Выбор 9 просто нарушает макет.

С этим сидением в таблице стилей нет необходимости беспокоиться о том, чтобы потерять что-либо после обновления.


* Выбор будет ограничен, но имейте в виду, что пользователь может по-прежнему указывать номер столбца с помощью опции текстового редактора. [gallery columns="9" ids="113,107,92,57,45,44"] Но если вы умны, вы, вероятно, отключили вариант текстового редактора для пользователей.