Кодинг

Маленькая хитрость при написании админки плагина под WP

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

Админка вордпресс

Возьмем к примеру плагин форм обратной связи, а именно, страницу со списком всех созданных пользователем форм. Все разделы плагина внешне выглядят стандартно. В шапке таблички имеем чекбокс, нажав на который можно отметить сразу все поля. Так вот. Автор плагина использует для подобной вещи такую конструкцию в своем коде:

$(‘.check-all:checkbox’).change(function() {
var group = ‘.m_id’;
$(group).attr(‘checked’, $(this).attr(‘checked’));
});

Казалось бы, в чем тут ошибка? Все четко и лаконично.

Отвечаю: В наличие этого куска кода как такового! Вот если бы автор во внешнем виде странц админки своего плагина захотел уйти от свойственного Вордпресу стиля, другое дело. Но в большинстве случаев стилизуют все по WP, а раз так, то достаточно просто дать табличке с данными такую структуру:

<table class=’wp-list-table widefat fixed striped page’>
<thead>
<tr>
<td class="check-column"><input type="checkbox"></input></td>
<th>Заголовок колонки 2</th>
<th>Заголовок колонки 3</th>
</tr>
</thead>
<tbody id="the-list">
<tr>
<th class="check-column"><input type="checkbox" value=""></th>
<td>Какие-то данные</td>
<td>Какие-то данные</td>
</tr>
</tbody>
</table>

и надобность скрипта отпадет! А все потому, что в самом Вордпрес такой скрипт уже существует, более того, он подгружен в админке постоянно! Кстати, если в строке три примера td заменить на th, то незначительно поплывет верстка (чекбокс перестанет быть по-центру ячейки).

Вообще посыл данной статьи в том, что если Вы намерены использовать какие-то весьма стандартные и часто используемые функции в WordPress, то прежде чем изобретать велосипед попытайтесь воспользоваться готовым)


Рейтинг:

2020-03-11 | | 0 комментариев | ,

Альтернативный заголовок изображения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *