Intereting Posts
Является ли сохранение нескольких параметров или сохранение нескольких элементов в одном варианте лучше? Переключение между вкладками Visual и HTML свободно Проверяет ли wp_insert_post вход? Я хочу разный размер эскиза в зависимости от размера медиа Почему мои пользовательские метабокс не обновляют мета-сообщение? Пользовательская регистрация username_exists / email_exists Деактивированный плагин Visual Composer, сайт разбился, что делать? Удалить текст, связанный с публикацией, а также текст, связанный с категорией, из темы? Что было бы командой PHP для удаления всех сообщений из категории X за последний месяц? Используйте одну базу WordPress с несколькими экземплярами одного сайта Сбросить пароль – установить минимальную длину для нового пароля Изменить статус персонализированного сообщения для черновика до сегодняшнего дня Показать текущую страницу с изображением на боковой панели Удалить комментарии MS Word из вставленного текста Поиск страниц, которые являются дочерними элементами текущей страницы

Правильный подход к стилю / шаблону вывода плагина

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

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

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

Правильно ли это подходит?

Solutions Collecting From Web of "Правильный подход к стилю / шаблону вывода плагина"

Сделайте это как можно проще для разработчиков тем. Большинство из них не программисты. Есть два очень простых варианта:

add_theme_support () и get_theme_support ()

Укажите идентификатор и некоторые параметры. Скажем, ваш идентификатор – drtanz_plugin . Автор темы теперь может добавить следующие functions.php своей functions.php :

 add_action( 'after_setup_theme', 'prefix_register_theme_support' ); function prefix_register_theme_support() { add_theme_support( 'drtanz_plugin', array ( 'template' => get_template_directory() . '/templates/drtanz_plugin.php', 'stylesheet' => FALSE ) ); } 

В своем плагине вы можете проверить поддержку темы сейчас:

 $plugin_options = array ( 'template' => get_template_directory() . '/templates/drtanz_plugin.php', 'stylesheet' => plugins_url( 'default.css', __FILE__ ), 'show_comments' => TRUE ); if ( $theme_options = get_theme_support( 'drtanz_plugin' ) ) $plugin_options = array_merge( $plugin_options, $theme_options ); 

Автор темы не изменил параметр show_comments , поэтому вы используете значение по умолчанию.

Pro: Простота расширения, действительно мощная.
Con: Может быть, слишком сложно для некоторых людей.

Используйте locate_template ()

Я сделал это в своем плагине T5 Opera Speed ​​Dial Preview . Просто проверьте, есть ли шаблон с заданным именем в теме и попытайтесь получить путь. Если шаблон не найден, используйте свой собственный.

 $template = 'speed-dial.php'; $path = locate_template( array ( $template ) ); if ( '' != $path and file_exists( $path ) ) require $path; else require dirname( __FILE__ ) . "/$template"; 

Pro: Легко учиться. Просто убедитесь, что имя, которое вы используете, уникально. Вы можете добавить функции *_theme_support позже, если они вам понадобятся.
Con: Это действительно просто шаблон, никаких дополнительных функций. И вы не можете изменить имя шаблона позже, потому что это сломает вещи.

Вы можете комбинировать оба подхода, но я бы использовал только один. Легче учиться.