web-dev-qa-db-ja.com

どのプラグイン出力方法を使用するのか

私はDrupal開発者で、Wordpressに入っています。私が言える限りでは、プラグインがWordpressサイトにコンテンツを出力することができるいくつかの異なる方法があります。

  • ショートコード
  • 書き換えAPI
  • ウィジェットAPI
  • "テンプレートタグ"(つまり、テーマのプラグインからPHP関数を呼び出すように指示します)
  • アクションAPI

いつ、いつ使うのですか。そのようなトピックをカバーしている良い記事はありますか?

3
m4olivei

これはあなたが何を必要としているかに大きく依存します。

質問に対する一般的な回答

  • リライトAPIは基本的にすべてのURlリライトものを行います。
  • Shortcode APIは、text/htmlエディタを使って投稿/コンテンツを拡張したい人のための使いやすい拡張アプローチです。別の方法として、TinyMCEのクイックタグボタンを使ってショートコード(shortcode-abstraction-layerの上のレイヤー)を挿入することもできます。
  • Widget APIは通常、テーマテンプレートのdynamic_sidebar()sに入る小さなプラグインを構築するために使用され、それがそのような可能性を提供します。
  • アクション/フィルタAPI(アクションは低レベルフィルタ)を使用すると、do_action()-hooksまたはapply_filter( 'name', $args_1, $args_etc )- filtersを提供するものをcore/themes/plugins/widgets/muplugins/dropinsに挿入または変更できます。 add_action( 'name', 'callback_function_name' );と一緒に使うことができます(クラスメソッドアプローチ:add_action( 'name', array( $this, 'callback_method_name' ) );)。

だからあなたは好きなようにすべてを使うことができるが、あなたはそれをユーザにとってできるだけ簡単にするように試みるべきです。テンプレートタグを提供するのは一般的にはお勧めできません。メイン関数をフックにフックすることをお勧めします。ユーザーは自分のテンプレートに追加する必要があります:do_action( 'plugin_special_hook' );。このようにして、あなたのプラグインが有効になっていない場合のエラーや警告/通知を避けます。

ウィジェットを使用している場合は、ユーザーが使用可能なオプションを調整するために使用できるUIがあります。

あなたがShortcodesまたはTinyMCEボタンを使うならば、あなたは出力を調整するための他の可能性を得ました。

フィルタやフックがあれば、ユーザが関与することなく出力が生成されます。あるいは、ユーザーが出力を調整できるSettings API管理ページがあります。

書き換えAPIは上記とは何の関係もありません - 出力に関するものではなく、リクエストのルーティングに関するものです。

名前は整理のためだけのものです...そしてフック

MUプラグインはロード順でDropInsの直後に来て、最も早いフックmuplugins_loadedにアクセスできます。それからあなたはplugins_loadedフックでプラグインを手に入れました。それからプラグイン用のafter_setup_themeフックがあります。それから残りはinitで続きます。

通常、経験則では、UIではないものはすべてプラグインにドロップします。オプションがある場合は、通常のプラグインを使用し、それ以外の場合はmu-pluginを使用します。残りはテーマに入ります。または子テーマ(親テーマの更新の変更を失うことなく、親テーマファイルを上書きすることが可能)。

コア部品を交換する

Pluggable.php関数を修正する必要がある場合は、DropInを使います。ヒント:プラグインを上書きしないでください。通常これはエラーが発生しやすいためです。

どこを見てもAPI

他にもいくつかのAPIがあります。 WP HTTP API、 、その他 。あなたがそれらを使うことを確かめなさい、そうでなければ空はあなたの頭の上に落ちるだろう(遅かれ早かれ)。

1
kaiser