Intereting Posts
Получать сообщения только по терминологии Навигация по страницам не отображается, когда категория запроса Почему только одно сообщение (и не разбиение на страницы) на этот вариант цикла? Как установить тему WordPress и настроить ее? Динамически отправить pdf, прикрепленный к сообщению с контактной формой 7 Admin-ajax php не работает над новой версией wordpress pre_set_site_transient_update_plugins не будет вызывать на размещенном веб-пространстве Как исправить недостающие пользовательские поля после обновления до WordPress 4.8.1? Как перенести установку WordPress с одного сайта на другой, включая все изображения? JS-файлы, приземляющиеся на странице, но не работающие, используя childtheme of twoeleven Ищите дополнительную информацию о post.php hack Разбиение страниц на странице archive.php Пустые страницы с # URL и Google Фильтр get_theme_mod игнорирует sanitize_callback Проблема с wp_query с post_type = page

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

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

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

В более экстремальном случае, когда пользователь хочет полностью изменить 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: Это действительно просто шаблон, никаких дополнительных функций. И вы не можете изменить имя шаблона позже, потому что это сломает вещи.

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