主题支持插件用户界面的正确方式是什么?

时间:2012-01-18 作者:Roman

例如,如果我的插件正在页面上创建一个表单,我该怎么做才能让主题开发人员尽可能容易地对表单进行蒙皮?

2 个回复
最合适的回答,由SO网友:Geert 整理而成

首先,提供well-formed default HTML form. 使用<label>, <fieldset><legend> 在适当的情况下。此标记为CSS样式提供了良好的结构。添加一些CSS类也可能有所帮助。

提供filter 这允许开发人员调整默认表单。

更进一步,您可以允许开发人员通过提供custom form template file 在一个主题内。

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 类似实现的一个很好的示例。

SO网友:Raphael

通常,少即是多,即除了添加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中添加元素的样式信息。

(实际上,我过去认为插件应该提供选项来设置其输出的样式,但我改变了主意。这里应该应用关注点分离:您创建(合理的)输出,用户可以根据需要设置样式。)

结束

相关推荐

将目录路径传递给plugins_url()安全吗?

plugins_url() 函数接受插件slug或文件路径来构建URL。我有以下目录结构:/wp-content/mu-plugins/someplugin/css/file.css /wp-content/mu-plugins/someplugin/includes/file.php 我需要建立URL到file.css 在里面file.php. 我不能通过__FILE__ 因为这将是一个层次太深。plugins_url(\'css/file.css\', __FILE__ )