「スニペット」(短いコードまたは機能)を以下に追加する必要があります。
技術的、セキュリティ的、パフォーマンス的などの観点からどちらが優れていますか。
アップグレード中にテーマのfunctions.phpが上書きされる可能性があるという理由のほかに、「スニペットからサイト固有のプラグインを作成する他の理由は何でしょうか。
パフォーマンスの観点からは、functions.phpとプラグインの間に違いはないと思います。コードの場所が異なるだけです。
私は実用的でしょう:もしその機能がテーマのコアの一部であれば(例えば、テーマが無意味なヘッダーのスクロール可能なスライダー):それはテーマの機能です。
もしそれが他のテーマ(例えばカスタムデータフィールド)に役立つかもしれない一般的な関数であるならば、それがプラグインにすることがより良い選択です。
私が言う最良の選択肢は、現在のテーマに子テーマを作成し、その子テーマのfunctions.phpにすべてのスニペットを追加することです。このように、現在のテーマが更新されてもfunctions.phpは上書きされません。
私はプラグインを買いに行きます。たとえば、ショートコードを含む投稿はテーマを切り替えるときに壊れてはいけません。
必須プラグイン を作成することもできます。それらは似たようなプラグインと同じように動作しますが、WordPressの管理領域から無効にすることはできません。
たとえば、カスタム投稿タイプ "recipe"に依存するクッキングサイトを作成するときは、投稿タイプ、カスタム分類法、ショートコード、新しいウィジェット、カスタム管理メタボックスを(必ず使用する必要があります)に登録します。テーマの代わりにプラグイン。
他の人によって開発されたテーマのfunctions.phpにあなたのスニペットを追加しようとしているようです。あるいはそれらの断片をサイト固有のプラグインに入れてください。
スニペットやfunctions.phpのカスタマイズがテーマの更新によって上書きされないようにするには、子テーマを使用する必要があります。
今どのようにあなたはfunctions.phpまたはサイト特有のプラグインにコードを入れることに決めることができます。スニペットがthumnailサイズの登録、メニューやサイドバーの登録など、テーマに機能を追加することに関するものであれば、それはテーマfunctions.phpの一部でなければなりません。
スニペットがサイトの機能に関するものであれば、カスタム投稿タイプ、カスタム分類法、カスタムパーマリンク構造の登録など、サイト固有のプラグインに入る必要があります。
上記の基準でどこにコードを配置するかを決定できない場合、答えが「はい」の場合はスニペットがプラグインに送られ、答えが「いいえ」の場合はテーマを切り替えるときにこのスニペットが必要ですか。 functions.phpに行きます。