web-dev-qa-db-ja.com

Wordpressテーマのアップグレードにより、親テーマのfunctions.phpが変更されるのをどのように回避できますか?

現在、wp-content/themes/genesis/header.phpにトラッキングコードを手動で実装しています

コードは次のようになります(短縮):

<script>
  CODE HERE
<?php if (is_single()){CODE HERE}?>
  CODE HERE
</script>
</head>

創世記(Wordpressテーマ))をアップグレードするたびに、このコードは失われ、手動で追加し直す必要があります。

このコードをfunctions.phpを介してwp-content/themes/genesis/header.phpのヘッドセクションに追加して、Wordpressテーマのアップグレード後も存続するようにするにはどうすればよいですか?

9
Alex

コンテンツをwp_headに動的に追加するには、<head></head>フックを使用する必要があります。

コードは次のようになります。

add_action('wp_head', 'change_this_name');
function change_this_name(){
  ?>
  <script>
    CODE HERE
  <?php if (is_single()){CODE HERE}?>
    CODE HERE
  </script>
  <?php
};
12
Nabeel Khan

一般に、変更を上書きせずにテーマを変更するソリューションは、子テーマを使用することです。しかし、ここでやりたいことと同じことをする小さなプラグインを作成することもできます。

どちらのオプションを選択するかは一般的に今のところ非常に重要ですが、今後さらに変更を計画している場合は、次のことに注意してください。

  • プラグインは機能を追加するためのものです
  • テーマは、物事の見た目や感じ方を制御するためのものです

これは、どのオプションが今すぐに最適かを判断するのに役立つ場合があります(ただし、両方を簡単に行うことも、後で変更することもできます:))。

オプション1:子テーマを作成する

_wp-content/themes_フォルダーに新しいフォルダーを作成し(新しいテーマに付ける名前を付けます)、そのフォルダーに_style.css_を作成します。

_style.css_の上部に、テーマの定義情報を含める必要があります。これのフォーマットをGenesisテーマからコピーできます。名前やその他の詳細を変更するだけで、アクティブ化したときにこれがテーマであることが明確になります。

ここで重要なのは、このテーマ情報に新しい行を追加することです。

_Template: genesis_

その行は、Wordpressテーマがジェネシスの子テーマであり、テーマが提供しないものはすべて、Wordpressはジェネシスから取得することを示しています。

ここで重要なのは、必要なものだけをオーバーライドして、残りをジェネシスにフォールバックすることです。

したがって、could_header.php_をコピーしてコードを追加しますが、次の場合はファイルの残りを更新する必要がありますそれは変わる。より良い解決策は、新しい子テーマで独自の_functions.php_を作成し、以下を使用することです。

_add_action('wp_head', function(){
  ?>
  Enter tracking code here...
  <?php
});
_

これにより、Wordpressのヘッドアクションにフックされ、ヘッダーの残りの部分をいじる必要なく、必要な場所にトラッキングコードが出力されます。

もちろん、準備ができたら、[表示]-> [テーマ] Wordpressに移動すると、そこに新しいテーマが表示されます。アクティブにして、サイトを確認してください!

子テーマの詳細とヒントについては、 Wordpress Codex)のこのページ を参照してください。

オプション2:プラグインを作成する

サイトに追加したい機能だけの場合は、プラグインの方が役立つ場合があります。特に、後でテーマを変更してプラグインを簡単に保持でき、自由にアクティブ化および非アクティブ化できるためです。

後で追加したい機能が他にある場合は、プラグインをいくつでも作成できます。

プロセスは、上記のテーマの作成とかなりに似ています。 _wp-content/themes_フォルダーに新しいフォルダーを作成する代わりに、代わりに_wp-content/plugins_に貼り付けます。次に、そのフォルダーに_.php_ファイルを作成します(例:_myplugin.php_。ただし、好きなように呼び出すことができます)。ファイルの先頭に以下を追加します。

_<?php
/*
Plugin Name: My Toolset
*/
_

(必要に応じて追加情報を追加できます。詳細は Wordpress Plugin Handbook のこのページ)にあります)

この下に、上記のテーマオプションで言及したまったく同じadd_action()コードを配置します。

ファイルを保存し、Wordpress管理者のプラグインに移動し、リストから新しいプラグインを見つけ、[アクティブ化]をクリックして、サイトを確認してください!

プラグインの詳細とヒントについては、 Wordpress Codex)のこのページ を参照してください。

4
Tim Malone