web-dev-qa-db-ja.com

テーマがプラグインUIをサポートするための正しい方法は何ですか?

たとえば、自分のプラグインがページ上にフォームを作成している場合、テーマ開発者がそのフォームをスキン処理するのをできるだけ簡単にするために何ができますか。

4
Roman

まず最初に、整形式のデフォルト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;
}

同様の実装の良い例として、wp-includes/general-template.phpget_search_form() 関数をご覧ください。

3
Geert

一般的に、より少ないことが多く、すなわち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に自分の要素のスタイル情報を追加できます。

(私は、実際にはプラグインがそれらの出力をスタイルするためのオプションを提供するべきだと考えていましたが、私は考えを変えました。ここでの懸念の分離を適用する必要があります。

3
Raphael