質問: 私のコードをどこに置くか:pluginまたはfunctions.php? プラグインまたはテーマのfunctions.phpに属するコードの種類を決定するための わかりやすいスキーム はありますか。そのトピックについては、 are _ { many ケース _、そして多くの 議論 _があります。私は意見ではなく事実に基づいて答えを求めています。それはこれらの点(そしておそらくそれ以上)をどのように扱うかを説明するべきです: カスタム投稿タイプと分類法 お問い合わせフォーム ショートコード カスタムウィジェット add_theme_support( 'automatic-feed-links' ); カスタムmeta要素のようなseo関数 テーマスイッチ 双方に賛否両論がしばしばあります。私たちの最も人気のある質問 あなたのfunctions.phpファイルのためのコードのベストコレクション は少なくとも議論の余地がある答えとしてたくさんのコードスニペットを得ました。 初心者が理解できる基準、おそらくチェックリストが必要です - 理由があります。メタサイトのchip bennettによる関連質問も参照してください。 特に「プラグインなしで」解決策を求める質問 関連: ここで見つけたコードスニペットはどこにありますか、それともweb上の他の場所にありますか?
回答: 私はこの質問から始めるでしょう: 機能は表示コンテンツの、または生成/管理コンテンツの、サイトの、またはユーザーid)に関連していますか? 機能性 関連性がない 特にコンテンツの表示)に関連するものであれば、プラグインテリトリーの範囲内です。このリストは長いです。 core wpフィルタ(正規リンク、ジェネレータ、その他のhtmlメタなどのwp_headの内容を変更する、など) サイトファビコン コンテンツ後のショートコード 投稿共有リンク google analytics(および類似の)フッタースクリプト seoのツール/コントロール 等. 機能 関連している がコンテンツの表示になっている場合、それはテーマに含まれている候補になっています。この時点で、 @ raf912のテーマ切り替え基準に戻ります) : テーマを切り替えたときに機能を見逃してしまいますか? その質問に対する答えが いいえ の場合、機能はテーマに属します。 wpコアギャラリーcssの削除/上書き 抜粋後の長さのフィルタリング、「続きを読む」テキストなど. add_theme_support() で実装されたもの(これは明らかなはずです) カスタムcss 通常、これらの2つの質問はかなり明確な区別の線を提供します。ただし、例外があります。カスタム投稿タイプたとえば、カスタム投稿タイプは、テンプレート階層が単一投稿タイプ アーカイブインデックスページ および 単一投稿ページ の場合の動作方法を考えると、コンテンツの生成と表示のちょっとユニークな組み合わせです。 cptのコンテンツ生成の側面は、通常、それらをplugin territoryに正当に配置します。ただし、プラグインでは、特定のテーマのデザイン/レイアウト/スタイルに本質的に適合するテンプレートページを定義することはできません(特にcptが通常のタイトル/コンテンツ/メタ以外に表示される場合、またはカスタム分類に関連付けられている場合)。長期的に見て、この格差の解決策である私見は、与えられた種類のコンテンツ(不動産リスト、カレンダーイベント、電子商取引商品、書籍/メディアライブラリのエントリなど)のcptの定義に関する標準的な慣習/合意を得ることです。 。)このようにして、テーマ開発者はテーマテンプレートファイルでそのcptのデザイン/レイアウト/スタイルを定義する柔軟性を維持しながら、ユーザー生成コンテンツは特定のcptの標準/規約定義を実装するテーマ間で移植性を保ちます。ソーシャルメディアリンク同様に、ソーシャルメディアのプロファイルリンクは、現在のテーマではほとんどどこにでもあるが、presentationof content)とは無関係であるため、プラグインテリトリーであると私は通常言う。コアのどこかで定義されていますが、現在のところこれらのリンクを定義するための標準的な/合意された方法はありません。テンプレートに?など.長期的に見ても、この格差の解決策は、これらのリンクが定義されている場所をコアで定義するか、またはテーマ開発者コミュニティが独自の合意を開発することです。それまでの間、それはそれぞれのテーマの中で定義されたままにしておくこと以外には本当に何もありません。