Каков правильный способ поддержки темы для пользовательских интерфейсов плагина?

Например, если мой плагин создает форму на странице, что я могу сделать, чтобы сделать так же легко, чтобы разработчики темы могли накрывать форму?

Solutions Collecting From Web of "Каков правильный способ поддержки темы для пользовательских интерфейсов плагина?"

Прежде всего, создайте хорошо сформированную форму HTML по умолчанию . Используйте <label> , <fieldset> и <legend> где это необходимо. Эта разметка обеспечивает хорошую структуру для стилизации CSS. Добавление некоторых классов CSS также может помочь.

Предоставьте фильтр, который позволяет разработчикам настраивать форму по умолчанию.

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

 if ($custom_form = locate_template('plugin_form.php')) { // Load custom form include $custom_form; } else { // Default form with filter $form = '<form><!-- Default HTML --></form>'; $form = apply_filters('pluginprefix_form_output', $form); echo $form; } 

Посмотрите на get_search_form() в wp-includes/general-template.php для хорошего примера аналогичной реализации.

В общем, меньше – больше, т. Е. Не стиляйте, кроме добавления стандартных классов WP. Если ваш плагин будет смешаться, он должен выглядеть как все остальное.

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

 <div style="am01_div"> <ul> <li>Test</li> </ul> </div> 

Это лучше чем

 <div style="am01_div"> <ul style="am01_ul"> <li style="am01_li">Test</li> </ul> </div> 

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

(Я на самом деле привык думать, что плагины должны предоставлять варианты для стилизации своего вывода, но я передумал. Разделение проблем должно быть применено здесь: вы создаете (разумный) вывод, стиль пользователей, если они захотят.)