任意のテーマで機能するグローバルな種類のfunctions.phpファイルはありますか?
問題はここにあります:
どのテーマでもfunctions.phpファイルを変更するときには、2つの変更を行う必要があります。まず、そのテーマの更新を確認する必要があります。第二に、私はサイトのテーマを変更するように注意する必要があります。
それで、テーマのfunctions.phpを変更する代わりに、どんなテーマからも独立している一部のfunctions.phpファイルを変更することは可能ですか?
テーマコードとテーマ以外のコードの違いは、技術的なものではなく組織的なものです。アクティブなコードは、結果として得られる環境に影響します。ロード元の場所は関係ありません。
コードがロードされる場所はたくさんありますが、それらはWordPressコアの一部ではありません。
wp-config.php
設定ファイルテーマの一部にすべきではない、あなた自身のコードのための典型的な場所はプラグインを作成することです。他のアプローチは一般的なケースから恩恵を受けませんが、通常のプラグインのインターフェース(管理領域を通して管理する)と技術的(アクティベーション/非アクティブ化/アンインストールイベント)の利便性を失います。
まあそれは本当の問題であり、彼らがテーマを変えるときそれに直面している多くの人々が、簡単な解決策があります。
その関数をfunctions.phpではなく新しいページに追加して、例えばyousitename + timestampなどの一意の名前を付けます。 。
どのプラグインがそのプラグインに名前をつけるのをお見逃しなくするためのものであるかを理解するためには:
/*
Plugin Name: XYZ
*/
@MBTheDeveloper回答に追加として。
他の選択肢は以下の通りです。
include
を使用して、カスタムコードを含むcustom-function.phpファイルをロードします。テーマのfunctions.phpファイルであなたのサイトに特定の変更を加えないでください。
代わりに、サイト固有のプラグインを作成してください。私は "ottopress.com"のようにサイトのドメイン名を使うのが好きです。それからあなたのスニペットをそのプラグインに入れてそのサイトでのみアクティブにしておきます。
あるいは、関連する変更の断片がある場合は、それらだけのために特定のプラグインを作成します。それはあなたに必要に応じてコードの関連ビットをオン/オフにするオプションを与えます。
最初にテーマのfunctions.phpの目的を理解する必要があります。 Functions.phpは基本的に、存在する場合はWordpressによって自動的にロードされる任意の名前のないプラグインファイルです。 Wordpressは現在のテーマのfunction.phpをワードプレスのフロントエンドページとバックエンド(admin)ページにロードします。
プラグインには名前があり、他のプラグインやテーマに関係なく有効/無効にできることを除いて、プラグインとfunctions.phpの間に違いはありません。 funtions.phpはあなたの現在のテーマに添付されていて、あなたが別のテーマに切り替えると、Wordpressはあなたの古いfunctions.phpではなく新しいテーマのfunctions.phpをカスタム修正で使用します。
テーマの更新もfunctions.phpを上書きするので、カスタムの変更を別のコードファイルに入れてfucntions.phpに含めたとしても、それを回避する方法はありません。更新ごとにそのインクルード行を追加する必要があります。
通常、functions.phpに入れるべきコードの種類です。
あなたがテーマを変えてもあなたのカスタム修正を保持したいので。この場合、テーマを切り替えても、子テーマのfunctions.phpが使用されないため、子テーマは機能しません。
@Ottoが推奨する唯一の解決策はプラグインファイルを作成することです。サイト固有のプラグインを作成するためのアプローチは、サイト名を含むフォルダを 'wp-content/plugins'に作成し、そこにプラグインファイルを作成することです。
コードに関連するサイトの機能を別々のプラグインファイルにまとめ、すべてのプラグインファイルに plugin header を追加することを忘れないでください。そうすることで、それらが別々のプラグインとして認識されます。あなたはそれからすべてを壊すことなくあなたのサイトのさまざまな機能を有効化/無効化することができます。