子テーマで親テーマ関数をオーバーライドする方法
公開: 2022-11-01WordPress で子テーマを作成している場合、親テーマの関数の一部をオーバーライドしたい場合があります。 この記事では、子テーマで親テーマの関数をオーバーライドする方法を紹介します。 まず、WordPress が関数をロードする方法を理解する必要があります。 関数が呼び出されると、WordPress は最初に子テーマでそれを探します。 見つからない場合は、親テーマを探します。 したがって、関数をオーバーライドする場合は、子テーマで作成するだけです。 親テーマの get_header() 関数をオーバーライドしたいとしましょう。 子テーマの functions.php ファイルに get_header() 関数を作成するだけです。 新しい関数は次のようになります: function get_header() { // あなたのコードをここに } これで、WordPress が get_header() 関数を呼び出すと、親テーマの関数の代わりに新しい関数が使用されます。 もちろん、関数を親テーマから子テーマにコピーするだけで関数をオーバーライドすることもできます。 ただし、親テーマが更新されたときに子テーマの機能を更新するのを忘れやすいため、このアプローチはお勧めしません。 子テーマが常に親テーマの関数の最新バージョンを使用していることを確認できるように、オーバーライド アプローチを使用することをお勧めします。
この記事では、WordPress の親テーマ機能をオーバーライドする方法について説明します。 3 つの方法のいずれかを使用して、関数が起動される順序を変更するか、まったく発生しないようにすることができます。 親テーマを作成するときは、関数のプラグインを含めて、子テーマで簡単に変更できるようにすることをお勧めします。 親テーマから関数を削除するには、 remove_action() および remove_filter() メソッドを使用します。 使用するフックに応じて、関数の優先度が決定されます。 関数の優先度が 20 の場合、子テーマを優先度 25 で書き換えると、関数が最初に作成されたときとは異なる動作になります。 一方、優先順位は、新しい関数の書き方には関係ありません。 やりたいことを選択するだけです。
WordPress 子テーマの子テーマ

WordPress の子テーマは、親テーマと呼ばれる別のテーマから機能を継承するテーマです。 子テーマは、親テーマを更新する機能を失うことなく、既存のテーマに変更を加えたい場合によく使用されます。 子テーマがアクティブな場合、WordPress は最初に子テーマのディレクトリでテンプレート ファイルを探します。 子テーマのディレクトリにテンプレート ファイルが見つからない場合、WordPress は親テーマのディレクトリで同じテンプレート ファイルを探します。 これにより、親テーマのファイルを直接編集しなくても、親テーマのテンプレート ファイルをオーバーライドできます。
WordPress を使用すると、HTML、CSS、および/または PHP の最小限の知識で Web サイトを簡単に作成できます。 この方法の欠点は、開発者がテーマを更新すると、変更内容が失われることです。 子テーマを使用すると、テーマから何も変更せずに Web サイトに変更を加えることができるため、はるかに優れたアイデアです。 テーマ ファイルは、子テーマがネイティブ テーマであるか、変更されたテーマであるかに応じて編集または変更されます。 指定した親テーマの一部のみを変更するため、すべてをコピーするわけではありません。 子テーマが適切に機能するには、フォルダー、スタイル シート、functions.php ファイルの 3 つが必要です。 子テーマには、独自のフォルダー、スタイル シート、および functions.php ファイルを含める必要があります。
子テーマは、他のテーマと同様に、WordPress インストールの WP-content/themes エリアにあります。 テーマの名前とテンプレートのみが必要です。 私はそうしていないので、残りは公開目的に厳密に保つことが重要です. functions.php を使用すると、WordPress Web サイトの機能を変更および追加できます。 ファイルの作成は、スタイル シートの作成と同じくらい簡単です。 PHP を使用してテーマを変更したくない場合は、PHP なしで行うことができます。 親テーマがある場合は、Web サイトがどのように見えるべきかを十分に認識している必要があります。
ここで作成する場合は、まず親テーマのスタイル シートの情報を取得する必要があります。 CSS と @import ルールは、これを行う 2 つの方法です。 すべてがうまくいけば、子テーマは作成したものと同じように見えるはずです。 これで、テーマのカスタマイズと変更を開始して、目的の結果を得ることができます。 カスタマイズにはさまざまなオプションが用意されており、それぞれについて詳しく説明します。 カスタム スタイルは、親テーマと同じスタイル階層を持つ子テーマに追加できます。 使用する方法は、Web サイトに何度でも変更を加えるために使用できます。
子テーマのフォルダー構造を親テーマと同じ順序に保つことは常に良い考えです。 親テーマの page-templates という名前のファイルに page-templates という名前のフォルダーが含まれている場合、子テーマのディレクトリに同じ名前のフォルダーを作成できます。 カスタムページテンプレートを作成するために、親テーマの page.php の名前を custom-full-width.php に変更するだけです。 最初の例は、以下に示すように、フッター要素に全角クラスを追加するfooter-custom.php 関数です。 あとは、以下のスタイル シートにコードを入力するだけです。 これは全幅のページです。 いくらか磨きがかかったかもしれませんが、今のところ結果に満足しているはずです。

テーマ フックを使用すると、コア ファイルを編集せずに子テーマをカスタマイズできます。 テーマフックを使用して、関数などのコンテンツをすぐにテーマに追加できます。 フックには、アクション フックとフィルター フックの 2 種類があります。 カスタム機能は、アクション フックを使用して既存の関数に追加できますが、フィルター機能は手元の関数を変更できます。 WordPress で子テーマを作成するのは簡単です。 そのために必要なコードは 1 行だけです。 この場合、Twenty Fifteen テーマのフッターにクレジットを表示する機能がターゲットになっています。 functions.php オプションを使用する場合は、子テーマの変更された footer.php ファイルも削除されていることを確認してください。
子テーマのフックは、子のアートワークの範囲を拡張できます。 子テーマを使用すると、コア ファイルを変更することなく、Web サイトを完全にカスタマイズできます。 その結果、テーマやフレームワークを追加したい場合は、最初から作成しなくても実行できます。 変更はテーマの更新から保護されます。 また、何か問題が発生した場合でも、常に機能的なテーマを使用できます。
子テーマを使用する 3 つの理由
子テーマを使用する理由はいくつかあります。 既存のテーマにさらにカスタマイズを追加できます。 サイトの外観をカスタマイズする場合は、カスタマイズ機能が既にあるテーマを使用して行うことができます。 元のコードを変更する時間や知識がない場合は、テーマを使用できます。 ほとんどの場合、希望する結果を得るには、子テーマを使用するのが最も便利な方法です。 優れた親テーマを使用すると、行った変更に気づき、理解できるようになります。 子テーマを使用する多くの利点の 1 つは、子に固有のテーマを作成できることですが、いくつかの欠点もあります。 子テーマは、作成した他のプラグイン、テーマ、またはカスタマイズ機能と衝突する可能性があります。 WordPress の 2 つ目の問題は、古いバージョンのプラットフォームでは子テーマが機能しないことです。 すべての子テーマがすべての WordPress プラグインと互換性があるとは限りません。 子テーマを使用する利点は、親テーマを使用する欠点をはるかに上回ります。 公開する前に、デモを使用したり、子テーマを試したりすることをお勧めします。
関数 PHP を子テーマに追加する方法

この場合、php は「functions」という名前のファイルを作成するだけでよいので、それを子テーマ フォルダーに保存できます。 テキスト エディターにある php タグを保存するには、PHP の開始タグと終了タグを入力し、関数として保存します。 オプションもあります。 アップロードが完了すると、最初の関数ファイルが子テーマ フォルダーにアップロードされます。
このチュートリアルでは、WordPress の子テーマに関数を追加する方法を学びます。 Twenty Twelve テーマでは、投稿のメタ情報を別の外観にします。 シリーズの一部として、このチュートリアルで子テーマに関数を追加する方法を学びます。 Twenty Twelve に含まれる functions.php ファイルを見ると、そのヘッダーに非常に興味深い行が含まれていることがわかります。 プラグ可能な関数は、このような呼び出しでラップされます。 関数 tinytwelve_nice_function (存在すると仮定) は、親テーマ内に存在しない場合にのみロードされます。 空のファイルを作成するには、functions.php を子テーマ フォルダーに入力します。
このチュートリアルでは、Twenty Twelve テーマのデフォルト出力を変更します。 投稿メタ情報行の書式付き文字列を生成する関数を処理するために、新しい部門が作成されます。 child-custom-meta div を作成するまでに、その CSS ルールを設定する必要があります。 新しい functions.php ファイルと新しい style.html ファイルを子テーマ フォルダーにアップロードする必要があります。
子テーマのファイルにアクセスする方法
子テーマのフォルダー構造により、テーマ内の特定のファイルを変更できます。 まず、子テーマのフォルダーがサイトにある必要があります。 その後、次のパスを使用します: br>a href=www.yourdomain.com/br>www.yourdomain.com/yourparenttheme folder/br>www.yourdomain.com/yourchildtheme folder/br>/a> 子テーマの場合たとえば、親テーマは sites/blog/themes/childtheme にあります。 ヘッダーに変更が加えられていることを確認します。 たとえば、site/blog/themes/child-theme/header に移動すると、ファイルを読み取ることができます。 子テーマの特定のファイルではなく、親テーマ全体を変更する場合は、親テーマのフォルダー構造を使用して親テーマのファイルにアクセスできます。 まず、サイトに親テーマのフォルダーがあることを確認してください。 次は次のステップです。 www.sitename.com/ たとえば、親テーマが sites/blog/themes/default にある場合、親テーマのファイルはそこにあります。