Как изменить параметры диалога редактора изображений на WordPress?

8

Я пытаюсь скрыть переключатели «Выравнивание» для изображений, загруженных в область содержимого публикации, но не могу понять, как добавить пользовательский файл CSS или JS в диалоговое окно «Редактор изображений».

Я успешно добавил фильтр в хук действия tiny_mce_before_init, чтобы удалить кнопки выравнивания из текстового редактора TinyMCE, но не уверен, как сделать то же самое с редактором изображений.

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

Я попытался взломать JQuery, но, похоже, это не так:

$('.mceWrapper iframe').load( function() {
    $(this).contents().find('tr.align').hide();
});
стойка на руках
источник
IIRC, что в iframe нет jQuery, это может быть проблемой.
NoBugs
Поскольку это крошечный плагин MCE afaik, нет способа фильтровать вывод. Вам нужно будет заменить плагин (tinyMCE Plugin, а не плагин WordPress, который есть) на пользовательский. Взгляните на похожую
статью
Кроме того, похоже, что надстройка wpeditimage tinyMCE-Plugin в настоящее время интенсивно работает, поэтому вы можете взглянуть на ожидающие изменения в WordPress Make
kraftner

Ответы:

2

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

Но перед этим слово предупреждения. Редактор изображений в настоящее время (2/2014) работает, поэтому это решение, вероятно, не будет работать со следующей версии WordPress без дальнейшей модификации.

Последнее замечание: было бы лучше, если бы вы поместили это в плагин, а не в свою тему. В любом случае, чтобы сделать этот ответ короче, я объясню, как поместить это в вашу тему.

1. Удалить редактор изображений по умолчанию

add_filter( 'tiny_mce_plugins', 'remove_wpeditimage', 10, 2 );

function remove_wpeditimage($plugins){
    if(($key = array_search('wpeditimage', $plugins)) !== false) {
        unset($plugins[$key]);
    }
    if(($key = array_search('teeny_mce_plugins', $plugins)) !== false) {
        unset($plugins[$key]);
    }
    return $plugins;
}

2. Скопируйте и измените редактор изображений

Скопируйте wp-includes / js / tinymce / plugins / wpeditimage в папку вашей темы.

Измените его так, как вам нравится. Самый простой способ избавиться от опций выравнивания - это изменить строку 55 из

<tr class="align">

в

<tr class="align" style="display:none;">

3. Добавьте измененный редактор изображений

add_filter('mce_external_plugins', 'add_customized_wpeditimage');

function add_customized_wpeditimage($plugins) {
    $plugins[ 'wpeditimage' ] = get_template_directory_uri() . '/wpeditimage/editor_plugin.js';
    return $plugins;
}
kraftner
источник
-1

Функция, которую вы ищете, чтобы добавить CSS в редактор MCE, называется add_editor_style . Я попытался заставить это работать, но быстрый пятиминутный взлом не работал для меня. Согласно Кодексу, это правильный способ сделать это.

BenFreke
источник
-1

Вы можете просто скрыть это с помощью CSS. Если в вашей теме есть файл css для панели администратора (для пользовательских форм и т. Д.), Просто добавьте это в этот файл;

#img-edit tr.align { display:none; }

Если в вашей теме нет CSS-файла для панели администратора, вы можете functions.phpвместо этого поместить его в файл вашей темы ;

add_action( 'admin_head', 'so4513579_hide-img-alignment' );

function so4513579_hide-img-alignment() {
    echo "<style> #img-edit tr.align { display:none; } </style>";
}

Обратите внимание, что значение выравнивания все равно будет сохранено как и до редактирования.

Майкл Рута
источник
Это не работает, так как CSS не добавляется в iframe wpeditimage tinyMCE-Plugin, но родительский экран редактирования.
kraftner