Думаю, по превью к сему сегодняшнему докладу ясно о чём пойдёт речь, и вряд ли стоит распыляться подробно о полезности предприятия по кастомизации и техническому улучшению текстового редактора Вордпресс.
Админу, коли тот серьёзен в веб начинаниях, есмь над чем поработать, ибо cms WordPress по умолчанию предоставляется в несколько скупом варианте. И это не потому, что смска плохая, но потому, что – у всех нас разные требования и взгляды на то, какой и как будет выглядеть личный сайт (веб-бизнес-площадка): что весьма справедливо!
Разработчики создали блестящий конструктор (фреймворк), позволяющий решать любые (именно любые) задачи в web мире. Конструктор по сути! но не по практическому тяжкому существу.
…авторы ни напихали в “стартовый вариант WP” всего и вся из полезного кода… отчего тот стал бы тяжёл (как, к примеру, любой онлайн конструктор), но дали возможность нам решать самим что и когда нам требуется.
Сегодня поработаем для будущего удобства при редактировании постов, контента в целом…
…занавес открыт:
добавить фильтр по таксономиям в метабокс админки (редактирование записей)
пролог для новичка:
…мне много приходит на почту вопросов от новичков о всяких там улучшалках WP и пр. …и по возможности, говорят, хорошо бы реализовать то или иное без плагинов…
Отвечая сейчас (чтоб не повторяться по сту раз в письмах), доложу: в общем-то, в принципе использования плагинов нет ничего плохого. Следует знать (и не забывать), что сами плагины не способны никак влиять на скоростя генерации и загрузки страниц сайта (за исключением нюансов, о которых ниже)!
…ведь именно забота о скорости загрузки личного сайта заставляет админов спрашивать и спрашивать…
Плагин по сути ничем не отличается от файла функций активной темы. А раз ничем, то и толковать об исключительной конкретности вреда не за чем) …и бессмысленно.
Посудите на таком примере: ко мне однажды обратился человек с просьбой выявить отчего у него так медленно грузятся страницы сайта, ведь у него установлено по минимуму плагинов?
В самом деле, у него по-моему было установлено всего-то плагинов 7-8.
Короче, как только я взглянул в недра его файла functions.php
– обалдел! от того что у него там было (а, главное, как) понапихано!! Как организовать файл функций!
Мораль: затормозить свою кровиночку сайт возможно не только плагинами, но беспечным использованием файла функций.
Плагины: тормозит загрузку страниц не наличие того или иного плагина, но их конкретный объём и качество написанного кода!
Вот тот минимум, о котором следует помнить.
Ещё новички сетуют на то, что, мол, сейчас в сети сложно отыскать полезную информацию.
Что ж, это действительно так! в ТОПах множество площадок, рассказывающих в режиме, так сказать, Old school – информация имеет свойства тухнуть, как и осетрина.
…И это я говорю не с каким-то там наездом на авторов блогов – у меня и самого есть на сайте так или иначе устаревшие посты: я их по мере возможностей правлю, если вдруг приходят комментарии – но я это говорю, скорее, в претензию поисковым системам и соискателям инфы в этаком море…
Любой невинный фильтр, перекопированный с ошибками, способен свалить “в белое окно!” блог/сайт.
…я всегда советую своим читателям так: отыщите какой-то приличный и полезно-живой сайт, рассказывающий о технических прибамбасах и – учитесь: тем более всегда можно о чём-то спросить у автора, который, думается, по возможности растолкует задачу… Подобные сайты в сети есть: можно взглянуть в мой листок коллег веб мастеровых. где я упоминаю о, на мой взор, хороших площадках.
Ну, ладно, это была присказка…
а сказка…
код-фильтр для редактора WP имеющихся на сайте рубрик
Online консультация по настройкам и созданию сайтов на WordPress
Не припомню, где этот код впервые увидел… кажется, у Тимура (wp kama). Да это и не важно, а важно то, что код кому-то будет весьма кстати!
Сей приведённый код прописывать на постоянное место жительства в файл функций (это первое место “прописок кода” большинства владельцев сайтов)
/** Фильтр элементов таксономии для метабокса таксономий (рубрик) в админке при редакции записи */
// Позволяет фильтровать (выбирать из большого числа) элементы таксономии по названию
add_action( 'admin_print_scripts', 'my_admin_term_filter', 99 );
function my_admin_term_filter() {
$screen = get_current_screen();
if( 'post' !== $screen->base ) return; // для страницы редактирования любой записи
?>
<script>
jQuery(document).ready(function($){
var $categoryDivs = $('.categorydiv');
$categoryDivs.prepend('<input type="search" class="fc-search-field" placeholder="фильтровать категории..." style="width:100%" />'); // подсказка
$categoryDivs.on('keyup search', '.fc-search-field', function (event) {
var searchTerm = event.target.value,
$listItems = $(this).parent().find('.categorychecklist li');
if( $.trim(searchTerm) ){
$listItems.hide().filter(function () {
return $(this).text().toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1;
}).show();
}
else {
$listItems.show();
}
});
});
</script>
<?php
}
/** Фильтр элементов таксономии (рубрик) в админке */
Как только код фильтра по рубрикам, будет установлен, в админке (в редакторе любой записи) появится такое, как на скрине ниже, окошко: стоит только начать вводить имя рубрики, как тут же (по мере ввода) появится подсказка… отфильтрованная автоматически (всего-то лёгонький JS) из имеющихся в арсенале сайта категорий (попросту рубрик).
Кстати, вот инструкции, рассказывающие о том, как добавить свои кнопки в редакторы Вордпресс: ПОСТ добавим свои кнопки в визуальный редактор (шорткоды) – сколько угодно и какие угодно душе для визуального редактора; ПОСТЫ как добавить кнопки в html редактор: что интересно – возможно добавлять абсолютно любые и в любом количестве же… для html редактора (для этого, вряд ли, целесообразно использовать плагины – да и задача прописки в редакторе TinyMCE достаточно просто решается)
Ну и как эпилог к повествованию…
чтобы текстовый редактор не удалял пустые span теги – при переключении вкладок
Подобное ограничение работы текстового редактора Вордпресс иногда требуется, например, если мы организуем на сайте всплывающие подсказки для пользователей (подробнее ТУТ).
/** чтоб текстовый РЕДАКТОР не удалял теги span без атрибутов: к примеру стилей или пр. */
function my_adds_alls_elements($init) {
if(current_user_can('unfiltered_html')) {
$init['extended_valid_elements'] = 'span[*]';
}
return $init;
}
add_filter('tiny_mce_before_init', 'my_adds_alls_elements', 20);
/** чтоб РЕДАКТОР не удалял теги span без атрибутов */
...А мне остаётся только раскланяться... и пожелать полезной работы в сети
mihalica.ru !