Как да добавим нови тагове и атрибути в WordPress -> TinyMCE

За визуален редакторна статиите в WordPressе избран TinyMCE (вариант на т.нар. WYSIWYG). Тези, които го използват сигурно са забелязали един “страничен ефект” – редакторът премахва някои таговеи атрибути при Save или преминаване от Visual към HTML режим. Използвам кавичките нарочно, защотоповедението на WordPress и TinyMCE е такова от съображение за сигурност. Това обаче създава проблеми на потребителите особено, когато използват code highlight приставки в блога си. Някои от тях използват нестандартни атрибути, които биват отстранявани, с което plugin-ът губи своя смисъл.

Като вариант на много места се предлага редакцията на wp-includes/js/tinymce/tiny_mce_config.php и добавяне на позволени тагове/атрибути в extended_valid_elements, което явно не е много препоръчително.

Елегантното решение, което намерих също променя extended_valid_elements в инициализиращия за TinyMCE конфигурационен масив, но го прави чрез прихващане наtiny_mce_before_init.

Ето и кода:

[code lang=”php”]/**
* Add to extended_valid_elements for TinyMCE
*
* @param $init assoc. array of TinyMCE options
* @return $init the changed assoc. array
*/
function my_change_mce_options( $init ) {
// Command separated string of extended elements
$ext = ‘pre[id|name|class|style]’;

// Add to extended_valid_elements if it alreay exists
if ( isset( $init[‘extended_valid_elements’] ) ) {
$init[‘extended_valid_elements’] .= ‘,’ . $ext;
} else {
$init[‘extended_valid_elements’] = $ext;
}

// Super important: return $init!
return $init;
}

add_filter(‘tiny_mce_before_init’, ‘my_change_mce_options’);[/code]

Хубаво, но се налага редакция на разни файлове. При допускане на грешка (волна или не) може да Ви падне целия сайт 🙂 .
Добрата новина е, че човекът с псевдонимengfer е сътворил plugin, чрез който лесно можете да свършите същата работа, без да се налага да пишете код и да редактирате файлове. Приставката се нарича TinyMCE Valid Elements и можете да си я свалите от тук:

[http://www.engfers.com/plugins/tinymce-valid-elements/ ]

На тази страница ще откриете и инструкции за инсталация.

След инсталацията, в раздел Manage се появява нова секция “TinyMCE Valid Elements“, от където можете да добавяте разрешени тагове/атрибути, които няма да бъдат премахнати от изходния код на статията, която пишете. В моя случай аз добавих атрибута “lineno” към тага <pre> заради CodeHighlighter приставката, която реших да използвам 🙂

Все пак напомням, че изрязването на тагове/атрибути се прави от WordPress от съображения за сигурност. Бъдете внимателни какво точно добавяте 🙂

Допълнителна информация:

Leave a Reply

Your email address will not be published. Required fields are marked *

*