Изменение разметки плагина WordPress - PullRequest
2 голосов
/ 07 января 2010

Существует ли способ «хорошей рабочей практики» для изменения разметки, создаваемый плагином WordPress, без редактирования основных файлов плагина.Проблема, которую я предвижу, заключается в том, что когда вы обновляете плагин, разметка, которую вы бы изменили, перезаписывается.

Я знаю, что в Drupal есть переопределения шаблонов, но я не знаю достаточно о WordPress, чтобы выполнять подобную практику..

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2012

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

  • подключить к запросам WordPress, что плагин сделать, и изменить их, чтобы получить разные результаты.
  • подключите функцию WordPress get_option () для изменения настроек плагина на лету.
  • подключитесь к содержимому страницы и используйте preg_replace () для взлома HTML.
  • подключите в начале генерации страницы, вызовите ob_start () для буферизации вывода страницы и подключите wp_footer для вызова ob_end_clean () и используйте preg_replace () для взлома HTML.

Просто некоторые идеи:)

Очевидно, что лучше работать с плагином, чем против этого. Вы должны проверить, использует ли ваш плагин шаблоны и, если нет, искать вызовы apply_filter () и do_action (). Но иногда, потребности должны!

0 голосов
/ 12 мая 2010

Плагин, вероятно, должен был бы быть написан, чтобы учесть это (хотя см. Ниже). Есть несколько способов сделать это: вы можете заставить плагин искать файлы шаблонов, которые он извлекает из произвольного места (например, «uploads / myplugin»). Вы можете сохранить HTML в базе данных в качестве параметра. Плагин может быть написан с помощью ловушки apply_filter (так же, как сам WordPress использует ловушки), чтобы разрешить внешние вызовы, которые изменяют вывод (например, из отдельного плагина или functions.php темы). Я использовал все эти методы.

Если вы говорите об изменении вывода чужого плагина, вы можете попросить его реализовать один из вышеперечисленных. Пуш приходит на ум, вы можете использовать JavaScript для управления DOM.

...