Intereting Posts
Есть ли функция для добавления дополнительных параметров на страницу опций Twentyeleven? Избегайте таксономии -% term% .php, если более одной таксономии Получение сообщений из определенных категорий Удалить имя сайта из формы регистра – Multisite Как исправить неожиданное перенаправление посетителей после включения multisite в WP3? Пользовательский виджет заголовка / кодировка HTML Проблема с редактированием шаблона для плагина «Список категорий» Получите пользовательские результаты поиска wp_query, которые будут отображаться на search.php Определение того, какая публикация отображается из общих сообщений Ошибка подачи: фид не найден на youtube.com/… (1 сообщение) Отображать контент на основе пользовательского значения поля Можно ли сделать сайт, как городской словарь, используя WP? Как увидеть элемент в админе с его URL-адресом? (не уверен, что это страница, сообщение или что) Как обновить счетчик личных страниц на панели управления? Как показать изображение прикрепления вложения

Как можно манипулировать малым mCE dom (официальный API не работает)?

Возможно ли это с помощью плагина tinymce? Я думаю, что другие способы доступа к iframe не работают или не рекомендуются.

Я нашел это и попробовал это в плагине печати mce внутри плагина TinyMCE Advanced, но он не работает .

var $ = tinymce.dom.DomQuery; $('p').attr('attr', 'value').addClass('class'); 

Я установил усовершенствованный плагин tinymce и попытался добавить эти строки в плагин печати. Плагин запускается, открывается диалоговое окно печати, но оно ничего не значит для dom. Имеет ли WP полную версию tinymce?

 /** * plugin.js * * Released under LGPL License. * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /*global tinymce:true */ var mce_dom = tinymce.dom.DomQuery; mce_dom('p').attr('id', 'arve').addClass('arve-html-class'); mce_dom('html').attr('id', 'arve').addClass('arve-html-class'); tinymce.PluginManager.add('print', function(editor) { var mce_dom = tinymce.dom.DomQuery; mce_dom('p').attr('id', 'arve').addClass('arve-html-class'); mce_dom('html').attr('id', 'arve').addClass('arve-html-class'); editor.addCommand('mcePrint', function() { editor.getWin().print(); }); editor.addButton('print', { title: 'Print', cmd: 'mcePrint' }); editor.addShortcut('Meta+P', '', 'mcePrint'); editor.addMenuItem('print', { text: 'Print', cmd: 'mcePrint', icon: 'print', shortcut: 'Meta+P', context: 'file' }); }); для /** * plugin.js * * Released under LGPL License. * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /*global tinymce:true */ var mce_dom = tinymce.dom.DomQuery; mce_dom('p').attr('id', 'arve').addClass('arve-html-class'); mce_dom('html').attr('id', 'arve').addClass('arve-html-class'); tinymce.PluginManager.add('print', function(editor) { var mce_dom = tinymce.dom.DomQuery; mce_dom('p').attr('id', 'arve').addClass('arve-html-class'); mce_dom('html').attr('id', 'arve').addClass('arve-html-class'); editor.addCommand('mcePrint', function() { editor.getWin().print(); }); editor.addButton('print', { title: 'Print', cmd: 'mcePrint' }); editor.addShortcut('Meta+P', '', 'mcePrint'); editor.addMenuItem('print', { text: 'Print', cmd: 'mcePrint', icon: 'print', shortcut: 'Meta+P', context: 'file' }); }); 

Надеюсь, вы можете использовать

 // Sets class attribute on all paragraphs in the active editor tinymce.activeEditor.dom.setAttrib(tinymce.activeEditor.dom.select('p'), 'class', 'myclass'); // Sets class attribute on a specific element in the current page tinymce.dom.setAttrib('mydiv', 'class', 'myclass'); 

или Вы можете добавить Id по jquery, как это

$('div').find('p').attr('id', 'myid');

(ответ на основе обсуждения в комментариях к вопросу) Борьба с другими плагинами за доминирование в глобальном масштабе – бессмысленная битва, особенно в контексте CSS, которую вы просто не можете победить. Просто потому, что у вас есть id="me" на теле, не мешайте плагину иметь более конкретную идентификацию элемента и «выигрывать» над вашим. Например #me p всегда будет проигрывать #myplugin .content p .

Ответ заключается в том, чтобы использовать уникальные имена классов и быть как можно более конкретными в ваших правилах стиля.

Другой подход заключается в том, чтобы полагаться на пользовательский интерфейс, чтобы пользователь имел (почти) истинный внешний интерфейс при изменении коротких кодов / настроек. Очевидно, это не так хорошо, как применение стиля во время редактирования, но есть только так много, что можно сделать до тех пор, пока WordPress не имеет истинного интерфейса редактирования.

(пример «взлома» был отредактирован из-за обсуждения в комментариях)

И последнее, и не в последнюю очередь мысль. Этот подход никоим образом не масштабируется из-за того, что для идентификатора элементов html и body может быть только одно значение, только один плагин может использовать этот подход, и если бы было два плагины делают, что результатом будет хаос.