WordPressの子テーマとプラグイン

テーマと子テーマ

WordPressには、インストール時に標準テーマとして、Twenty Twenty、wenty Nineteen、Twenty Seventeenの3つ(WordPress 5.5.1の場合)が用意されています。

今までにWordPressをインストールしたことのないの環境に、はじめてインストールした直後のWordPressでは、このうちTwenty Twentyが適用されて、このようになっています。

このときの、「ダッシュボート」の「外観」はこんな様子です。
有効になっている、Twenty Twentyの他、2つのテーマがある事が判ります。

テーマとは?

では、このテーマとはなんでしょうか?

一言で言うと、「外観」の中にあるので、外観を受け持っています。
外観に関するあらゆる設定をひとまとめにしたのがテーマです。

このため、テーマを取り替えると、記事内容を保ったまま、見た目だけまったく違う形式にする事が可能で、自分の希望する外観や機能を持つテーマに取り替える事で、非常に簡単に見た目を切り換える事ができます。

少し専門的になりますが、WordPressでは書いた記事の内容や、設定した事項はデータベースに記憶されています。

WordPress自身は、これを人間に見せる仕事は一切せず、それを全てテーマに一任し、テーマの要求で記事内容などをデータベースから渡しています。

このため、外観を簡単に切り換えたり、SEOなどに強い並び方でデータを呼び出しできるという仕組みになっています。

ちなみに、このサイトでは、lightning というテーマを使用しています。

テーマを切り換えてみる

それでは、このサイト同様、lightning にしてみましょう。

lightning は「外観」の「テーマ」で簡単に取得できます。

外観を押し、テーマが出て来てたら、新しいテーマを押します。

するとテーマの一覧画面になりますので、lightningと入力して検索すれば、すぐに見つける事ができます。

でてきたlightningのアイコンを押すと、インストールかプレビューを選択できますので、インストールを押せば、それだけでインストールされます。

押せばこのように「インストール中」になります。

テーマのインストールは、若干時間がかかるので、しばらく待ちましょう。

インストールが完了しました。
ただ、このままではテーマは使用されていません。

最後に「有効化」を押して完了です。

如何でしょうか? サイトアドレスは同じなので、同一のサイトを開いているはずですが、見た目はまるっきり別サイトです。

でも、ちゃんと記事は未分類のHELLO WORLD! 同じ内容を表示しているのが判ると思います。

このように、テーマを取り替えるだけで、簡単にサイトの見た目を変える事ができます。
しかも、記事の内容はまったく同一のままで

WordPressのテーマは、使用にお金のかかる有償のものから、無償提供のものまで、無数に存在しますから、テーマをドンドン載せ替えて、ご希望にピッタリのサイトを簡単に作る事ができるでしょう。

これで、めでたしめでたし……とは行かないのが世の中の常ではありますが…

テーマの「見た目」に満足出来ない時

例えば、これが誰かに頼まれて、『テーマ試験』というサイトを立ち上げ、lightningをテーマとして設定したとしましょう。

「『テーマ試験』のタイトル、もう少し大きな文字で、太字で、あと色は青がいいな。それと、マウスを置いたら水色に変えられる?」

という要望が来たら、どうしましょうか?

もちろん、文字色を換える位は、ダッシュボードから簡単にできます。
ただ、大きさの指定や、フォントはこれが良いなど、ダッシュボードからでは答えきれない要望を受ける事があるかもしれません。

そんな時は、テーマそのものを改造するという方法が存在しています。

<header class="siteHeader">
  <div class="container siteHeadContainer">
    <div class="navbar-header">
      <h1 class="navbar-brand siteHeader_logo">
        <a href="http://localhost/wp551_01/">
          <span>テーマ試験</span>
        </a>
      </h1>
    </div>
  </div>
</header>

少々専門的になりますが、lightningで表示したサイトの、「テーマ試験」の辺りは、実際には次のような記述になっています。

少々無理矢理日本語にすると、

「テーマ試験」は、localhost/wp551_01/へリンクするよ。段落としてはH1なので、大きな見出し1号用の設定を読んでね。他のところはnavbar-brand siteHeader_logoを読んでね。

になります。

文字色や大きさの事は、かかれていません。
これは、最近のWEBサイトの書き方として、属性や文字内容と、色や大きさなどを分けて管理するという考え方に基づいています。

属性や文字内容を受け持っているのがHTML、大きさや色などは、CSSというものが受け持っています。

そのCSSには、文字カラーや、別の場所ではフォントサイズが記載されていて、総合では、カラーに#333333をフォントを22.4pxを指定しています。

なので、これを換えてやれば、表示を変える事ができます。

/* サイト名の色 */
.navbar-brand a {
    color: #337ab7;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-size: 35px;
    font-weight: 600;
}

/* サイト名マウスオーバー時の色 */
.navbar-brand a:hover {
    color: aqua;
}

上記の内容を、WordPressをインストールしたフォルダにある、wp-content の中のthemes の中の、lightningフォルダにある、style.cssに追記します。

ツリー的にはこのようになります。

すると、先ほどのテストサイトは、このような表示になります。

「テーマ試験」の文字が、明らかに大きくなっていて、かつ青色ですね。

マウスを上に載せると、水色になります。

変更が元に戻ってしまった!

これで万事解決ですね。と思いきや、実はこの方法には落とし穴があります。

自分のWordPressサイトのダッシュボードで、こんな表示を見たことはありませんか?

これ、テーマのバージョンが新しくなったので、更新するべきという案内です。

セキュリティの観点からも、テーマやプラグインは可能な限り最新を使用するべきです。

早速、更新してみましょう。

すると、なんという事でしょう

せっかく設定した太字が消えてしまいまいた。

これは、テーマを更新した事で、先ほど書換をしたstyle.cssが初期化されて、元に戻ってしまったためです。

一箇所や二箇所の修正なら、テーマのアップデートの度に修正するのもアリかもしれませんが、メンテナンスとしては面倒ですし、最悪です。

どうすればいいでしょうか?

子テーマを作成して、解決する

子テーマというのは、配布されているWordPressのテーマをベースに、部分部分だけを修正するテクニックです。

主要部分をメインのテーマから引用し、必要な部分だけを自分が記述した設定にする事ができます。

WordPressをインストールしたフォルダには、wp-contentというフォルダがあり、その中に、themesというフォルダがあります。
lightningが見えていますが、これは、上のテーマインストールをすると、themesフォルダに自動的に作成されるためです。

逆に、テーマに関するファイルをここに手動で配置すれば、画面の「新しいテーマ」からでなくてもテーマを設置できます。

ここに、適当な名前でテーマのフォルダを作ります。

ここでは、lightningを引き継ぐ事にして、lightning-child01 と名付けましょう。

その中に、ファイルを2つ作成します。

ファイルは、functions.php と、style.css です。

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
  wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
  wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style')
);
}
?>
/*
 Theme Name:   Lightning Child Zero One
 Theme URI:    https://yoshisyou.com/lightning-child01
 Template:     lightning
 Description:  Lightning Child Zero One Theme
 Author:       Yoshikawa Laboratory
 Author URI:   https://yoshisyou.com/
*/


/* サイト名の色 */
.navbar-brand a {
    color: #337ab7;
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-size: 35px;
    font-weight: 600;
}

/* サイト名マウスオーバー時の色 */
.navbar-brand a:hover {
    color: aqua;
}

style.css は

Theme Name: Lightning Child Zero One(名前は必須)
Theme URI: https://yoshisyou.com/lightning-child01(テーマの公式サイトなどのURL(空欄でも可))
Template: lightning(必須)
Description: Lightning Child Zero One Theme(テーマの説明(空欄でも可))
Author: Yoshikawa Laboratory(テーマ作成者の名前(空欄でも可))
Author URI: https://yoshisyou.com/(テーマ作成者のURL(空欄でも可))

の後に、上段に記載してる変更点を記載します。

これを保存し、WordPressのダッシュボードの外観を見ると、イメージがなく、先ほど付けた名前が表示されています。

このLightning Child Zeroを有効化すると、

lightningとまったく同じ画面ですが、先ほどの修正が活きていて、青く太いサイト表示と、マウスを載せると水色に変わる設定も活きています。

有効化したのは、Lightning Child Zeroなのは確認済みですが、Template: lightningの設定で、lightningの設定を持ってきているため、見た目はlightningそのままになります。

Lightning Child Zero Oneを有効化したメリットは、有効化の説明画面にも現れています。

有効化をはずれたlightningですが、「新しいバージョンが利用できます」の警告が出ています。
先ほどの通り、テーマは可能な限り、最新にしておくのが望ましいです。

lightningの更新を完了させました。

今度は、テーマlightningの更新後も、ヘッダの文字が変わりません。

これは、メインは子テーマであるLightning Child Zero Oneが担当し、親であるlightningと重複する部分については、子テーマが優先されるためです。

これにより、今後はlightningの更新があっても、子テーマで変更している部分については、子テーマの表記となるため、変更した部分が勝手に上書きされてしまう事がありません。

このように、使用テーマで実現できない部分については、子テーマで分離して内容を変更してしまう事により、実現が可能になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です