Intereting Posts
Абсолютные пути в backend для плагинов после перемещения wordpress Как одновременно обращаться к одной и той же базе данных MySQL в главном столбце и боковой панели WordPress? Использование класса шифрования в плагине WordPress Как изолировать код на экране редактирования сообщений Как пропустить nonce? не могу войти в мой wp-login и получить доступ к моей панели Ссылка на предыдущие сообщения Почему функция wp_nav_menu работает только до тех пор, пока не будет создано меню? проблема с подключением addaction вызывает перенаправление Получение ответа через URL-адрес ответа на моем сайте WordPress Правильно удалить сообщения с мета и вложениями Создайте пользователя с ролью автора, но не введите регистрационную информацию Отправить сообщение для WordPress Получить пользовательскую область всех сообщений на текущей странице блога Пользовательский тип сообщения с обменными знаками (без содержимого)?

Дополнительные кнопки выравнивания на экране загрузчика мультимедиа

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

Это вопрос, о котором я говорю. Добавьте параметр выравнивания для изображений

Ответ, предоставленный @ david.binda, – это то, что я считаю лучшим решением за последнее время, поскольку для кнопок выравнивания недоступен только вариант с крючком или фильтром.

До WordPress 4.0 .1 все работало отлично, но обновление до последнего WordPress 4.1 .0 по какой-то причине это решение ломается, и я не могу найти, почему это так.

Это было похоже на то, что было раньше. Просто некоторые дополнительные кнопки выравнивания на медиа-загрузчике модальные. Если вы выберете LeftSuper, он немного потянет изображение в интерфейсе за пределами контейнера содержимого.

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

Я думаю, что ваша настоящая проблема здесь – это время, remove_action что вы должны делать только remove_action и add_action в действии wp_enqueue_media запущенном в конце функции wp_enqueue_media() , после того, как она добавила действие, которое вы заменяете:

 add_action( 'wp_enqueue_media', function () { if ( ! remove_action( 'admin_footer', 'wp_print_media_templates' ) ) { error_log("remove_action fail"); } add_action( 'admin_footer', 'my_print_media_templates' ); } ); 

(Мое предположение заключается в том, что remove_action() который вы делаете, действительно терпит неудачу и что wp_print_media_templates() все еще вызывается, но после вашего my_print_media_templates() , так что DOM имеет две копии медиа-шаблонов, но ваши победы потому что это на первом месте. И хотя я не понимаю, почему вам нужно будет сделать свой собственный require_once из «media-template.php», это довольно большой проблесковый маячок!)

Кроме того, хотя это личное предпочтение, я бы предпочел манипулировать существующими шаблонами (после вызова оригинала wp_print_media_templates() ), а не просто копировать и вставлять весь shabang и редактировать их. Например:

 function my_print_media_templates() { $replaces = array( '/<option value="center"/' => '<option value="leftsuper">' . esc_attr__('LeftSuper') . '</option>$0', '/<option value="none"/' => '<option value="rightsuper">' . esc_attr__('RightSuper') . '</option>$0', '/<button class="button" value="center">/' => '<button class="button" value="leftsuper">' . esc_attr__('LeftSuper') . '</button>$0', '/<button class="button active" value="none">/' => '<button class="button" value="rightsuper">' . esc_attr__('RightSuper') . '</button>$0', ); ob_start(); wp_print_media_templates(); echo preg_replace( array_keys( $replaces ), array_values( $replaces ), ob_get_clean() ); } 

Я думаю, что это немного более удобно, чем метод copy & paste, который почти гарантированно устаревает в каждой новой версии WP.

ПОНЯЛ!

Процедура:

Просто скопируйте функцию wp_print_media_templates () по умолчанию и добавьте ее в файл functions.php вашей темы. Функция wp_print_media_templates находится внутри /wp-includes/media-template.php.

Переименуйте функцию в свой _print_media_templates () – измените код, который вы хотите отредактировать. В моем случае я добавил несколько дополнительных кнопок выравнивания.

После этого добавьте следующие 3 строки кода ниже, это приведет к удалению функции по умолчанию – она ​​также снова включит исходный файл media-template.php. Не знаю, зачем это нужно, но по какой-то причине это необходимо. После этого последняя строка кода добавляет вашу пользовательскую функцию _print_media_templates () в WordPress, и она будет использоваться вместо исходной функции WP Core.

Удачи! Это не красиво, это добавленная стена кода, но я думаю, что это лучший способ продвижения вперед, пока WordPress не предоставит нам больше крючков / фильтров внутри исходной функции.

  *** wall of code here - see: http://pastebin.com/AgCysMdf *** // remove default wp_print_media_templates from footer remove_action( 'admin_footer', 'wp_print_media_templates' ); // require the media-template.php again require_once ABSPATH . WPINC . '/media-template.php'; // add your custom print templates add_action( 'admin_footer', 'my_print_media_templates' ); 

Этот подход работает, но лучше использовать решение @ bonger