/WordPressのテーマを自分で作成してみたら意外と簡単だった!2018-10-02wp.geekブログWordPressのテーマを自分で作成してみたら意外と簡単だった!TweetPocketWordPressを使ってサイトを制作する上で、テーマの選択はSEOを考えた上でもSNS運用を考えた上でも非常に大切です。base」と呼ばれるテーマを使っているのですが、このような他人が作ったテンプレートテーマを使ってサイトを作成した場合はカスタマイズしにくいといった欠点があります。機能やSEOを充実させるためにカスタマイズをしたいと思った時にどこにどんな記述がしてあるのかを理解していなければ、時間と手間がかかってしまうからです。当サイトのような簡単なブログならいいのですが、コーポレートサイトのような作り込む必要のあるHPをワードプレスで作る場合は、カスタマイズや運用をしていく上でオリジナルテーマを作ることが必ず必要となってきます。!テーマの作成方法ってなんだか難しそう今までテンプレートテーマでしかサイトを作成したことがないオリジナルテーマってすごい時間かかりそうこのような不安を抱えてWodrdPressのテーマを作成することに対して抵抗がありませんか?実は私もはじめは同様のイメージを抱えていましたが、一度ftpでテーマファイルを触ったことがある人ならすぐにオリジナルテーマが作成できます!テーマファイルを触ったことがない人でもftpにさえつなぐことができるなら、簡単にオリジナルテーマを作成することができます!wp.makeでテーマ作成した場合の料金はこちら※なお、ここではデフォルトのWordPressはすでにインストール済みであるとします。最初にできるテーマはみすぼらしいものになるので、本番サイトで実行しないでください。最後に作成に必要なWordPressで使用されているテーマなどのファイルを理解するWordPressのファイルをFTPなどで見たことがある人はご存知かもしれませんが、テーマのディレクトリ(フォルダ)は「(ワードプレスをインストールしたディレクトリ)/wp-content/themes/」の中にテーマはあります。デフォルトでは「twenty」で始まるテーマディレクトリが3つ備わっています。└──twentysixteen123456(ワードプレスをインストールしたディレクトリ)└──wp-content└──themes├──twentyfifteen├──twentyseventeen└──twentysixteenその中を見てもらうと、いくつかのディレクトリとファイルが入っていると思いますが、ここではオリジナルテーマを作成する時に最低限の役割は覚えておくべきファイルを紹介します。index.phpindex.phpはWordPressで作成したテーマのTOPページを表示させるためのファイルになります。記事の一覧型を表示させるにしろ、記事のようなコンテンツを作成するためにはなくてはならないコンテンツと言えます。「.php」で終わるファイルは、phpというプログラムを記載したファイルとなります。index.htmlでも良いように思う方もいるかもしれませんが、phpファイルでTOPページを作成することにより別ページのコンテンツの情報を引用することができたり、他のページの更新情報が動的に反映されるといったメリットがあります。header.phpWordPressのテーマファイルにおいて、ページの「head」部分や「body」の上部までを構成するファイルになります。index.phpやsingle.phpなどに「head」や「body」を直接記述しても良いのですが、解析タグの挿入やメタタグの挿入など各ページごとに挿入すると面倒となってしまうためheader.phpを作成することで大幅に時間短縮することができます。footer.phpWordPressのテーマファイルにおいて、ページの<body>下部を構成するファイルになります。footer.phpに記載するのは主にcopyrightやfooterなどheader.phpと同様に各ページの違いがほとんどないものになります。リマーケティングタグなどは「body」の一番最後に挿入する機会が多いと思いますが、footer.phpさえあれば、一度でほとんどのページに反映させることができるので非常に便利です。page.phpWordPressのテーマでpage.phpを作成すると自動的に固定ページのテンプレートファイルとして認識されます。固定ページでも各ページで違うテンプレートを読み込みたいという人は、「page-任意の値.php」というファイルを作成し、冒頭部分に以下の記述をすることにより、WordPressの固定ページを新規作成するときにテンプレートを変更することができます。任意の名前を設定してください*/?>seo的には考慮したい記事の親子関係も固定ページではデフォルトで設定することができるので、更新頻度は高くないけどSEOもデザインも意識したいページがあれば固定ページを活用しましょう。single.phpsingle.phpは投稿ページのテンプレートです。WordPressテーマのデフォルトでは一つのテンプレートしかないように思われるかもしれませんが、カテゴリーの名前でテンプレートを切り分けることが可能です。「single-カテゴリー名.php」でsingle.phpよりも優先的に読み込むようになるので、カテゴリーごとにテンプレートを切り分けたい時は活用しましょう。archive.phpカテゴリーページやタグページなど記事を一覧で表示させるようなページのテンプレートファイルになります。コーポレートサイトにはあまり必要がないかもしれませんが、ブログやコンテンツマーケティングを行うサイト作成する際のテーマには必須なので、状況に合わせて作成しましょう。sidebar.phpsidebar.phpはサイトが2カラムや3カラムある時に表示される本体横のコンテンツです。1カラムのwebサイトには必要ないかもしれませんが、サイドバーがほしいときなど様々なコンテンツを見て欲しい場合には積極的にテーマに取り入れて活用してみてください。404.php「404.php」というファイルをWordPressでテーマを作成した場合、ユーザーが存在しないURLに飛んでしまったときに設定をしなくても404.phpで書かれたソースを自動で吐き出してくれます。SEO的にはnoindexタグを404.phpに挿入することでクロールエラーを極力抑えることができます。style.cssWordPressのテーマ作成だけではなくwebサイトには欠かせないデザインシートです。どんなwebサイトにするにしてもhtmlに直接styleを書き込むと修正の際に不便だったり、htmlが見づらくなってしまったりするので極力外部ファイル化して、読み込むようにしましょう。function.phpもしかすると自分で作成したテーマを作成した場合、最初は記述することがないかもしれませんが、カスタム投稿タイプを追加したりショートコードを作成したりとWordPressのオリジナルテーマを作成するためにはなくてはならない存在です。wp.makeでテーマ作成した場合の料金はこちらオリジナルテーマを作成するために必要なファイルの作成方法WordPressのファイルをみると、サイトによって読み込むべきファイルと読み込まなくても良いファイルがあるのがわかると思います。すべてのファイルをアップロードしても良いのですが、運用していくにあたってどのファイルをいじればいいのかがわかりにくくなってしまうので、なるべく必要最低限だけアップするようにしましょう。index.phpの作成方法index.phpの基本的な構造はindex.htmlと同様なのですが、ここでindex.htmlの記述をおさらいしてみましょう。html><html><head></head><body></body></html>コンテンツ部分やhead部分の記述はしていせんが、このような記述になると思います。このindex.htmlをindex.phpに設定したとしても動的にコンテンツが吐き出されることはないですし、WordPressのオリジナルテーマでサイト制作に使用するメリットはありません。一般的なWordPressのindex.phpの構造は次のように記述されていると思います。・TOPページのコンテンツを静的にしたい場合はhtmlのbody以下としてここに記述してください。使用し該当投稿の情報が引用できるよう記述しましょう。?>・TOPページのコンテンツを静的にしたい場合はhtmlのbody以下としてここに記述してください。・TOPページに載せるコンテンツの一部は下層ページから引用したい場合は、have_posts()やget_posts()を使用し該当投稿の情報が引用できるよう記述しましょう。?>一般的なWordPressのindex.phpはこのような形式になっていると思います。bodyの開始がheader.phpに含まれ、bodyの終わりがfooter.phpに含まれていますが、analyticsタグやリマーケティングタグの設定の際にbody直後やbodyの終わり直後を指定することが多いため、このような記述が一般的となっています。※どうやって下層の投稿データを引用すればいいのかわからない!という方はwp.makeでは簡単なカスタマイズの依頼も受け付けておりますので、ぜひチャットかお問い合わせでご連絡ください。wp.makeでテーマ作成した場合の料金はこちらheader.phpの作成方法header.phpはindex.htmlの開始からbodyの始まりまでを記述することが多いです。?></head><body><header></header>通常のindex.htmlと違い、WordPressでテーマを作成するならhead部分には必ずwp_head()を記述するようにしてください。記載しなければ各プラグインが動作しないなどのエラーが起きてしまうので必須事項です。headerのような各ページの上部で共通化できそうな部分はheader.phpに記述しておくと便利なのでWordPressでサイトを制作するなら積極的に記述していきましょう。footer.phpの作成方法WordPressのfooter.phpはbodyとhtmlの閉じタグまでを記述します。?></body></html>header.phpと同様にWordPressでテーマを作成するならwp_footer()を必ず記述してください。header.phpと同様にプラグインが動作しなくなってしまうので要注意です。footer部分やタグ関係など共通化できる部分は記述して他のページで楽をしましょう。header.phpの内容はget_header()のところに、footer.phpの内容はget_footer()のところに入ります。上で作ったindex.phpにget_header()やget_footer()を適応すると以下となります。このように結果的に1つのhtmlが出来上がるわけです。・TOPページのコンテンツを静的にしたい場合はhtmlのbody以下としてここに記述してください。使用し該当投稿の情報が引用できるよう記述しましょう。?></head><body><header></header>・TOPページのコンテンツを静的にしたい場合はhtmlのbody以下としてここに記述してください。・TOPページに載せるコンテンツの一部は下層ページから引用したい場合は、have_posts()やget_posts()を使用し該当投稿の情報が引用できるよう記述しましょう。?></body></html>また、headerやfooterで一部のページだけ共通化させたくないという場合であっても、「is_page()」や「is_single()」といったWordPressオリジナルのpage指定方法があるので、if文で条件分岐を設定してあげれば特定のページだけ読み込んだり読み込ませなかったりすることができます。phpでif文が書けないという方は、簡単な質問もwp.makeでは受け付けておりますのでお気軽にご相談ください。page.phpの作成方法page.phpはワードプレスにおいて固定ページのテンプレートの事です。記述は以下のような形が一般的となっています。?>記述している内容は投稿があるかをチェックし、あれば投稿内容を取得する指定をしています。上で紹介した固定ページにテンプレートを追加したい場合は以下のような記述になります。?>仮にこの状態で「page-sample.php」という名前でアップすれば、WordPressの固定ページにはテンプレート名として「任意の名前を設定してください」というテンプレートが選択できるようになっているので、一度試してみてください。single.phpの作成方法single.phpは投稿ページのテンプレートです。基本的に中身はpage.phpと同じです。ファイルが見つかりません。」を意味する数字で、404.phpは例えば記事が見つからないときなどに表示されるテンプレートとなります。これも中身はindex.phpなどと同様となります。記事が見つかりません。?>記事が見つかりません。?>style.cssの作成方法style.cssには以下のようにコメントの形でテーマの情報を追加する必要があります。*/今回は必須となっているテーマの名前だけを指定して、以下のように書くことにします。*/「この下に通常のcssを書いていく」の以下に、cssを書いていくことになります。WordPress特有の書き方みたいなものは存在しないので、通常通りにcssを書いていってください。cssについてはここでは解説しません。cssが書けないという方は、やはりオリジナルテーマの作成は難易度がとても高くなってしまうのでお気軽にご相談ください。wp.makeでテーマ作成した場合の料金はこちらstyle.cssを追加したとしても、そのままではstyle.cssは読み込まれません。以下のように、cssを読み込む一文を付け加える必要があります。この一文を付け足しました。この一文を付け足しました。?></head><body><header></header>付け足した行のget_stylesheet_uri()は、style.cssのURLを取得する関数です。linkタグでstyle.cssを指定してcssを読み込むようにすることにより、cssが有効になります。上でも言ったとおり、最初はこれを追加する必要はないと思います。必要なときが来たら勉強するということでいいと思います。wp.makeでテーマ作成した場合の料金はこちら作成したファイルをftp上でアップロードする以下のように、sample_themeフォルダを作成し、その下にこれまで作ったファイルをアップしてみてください。└──style.css├──twentyfifteen├──twentyseventeen└──twentysixteenここで、sample_themeというのは、テーマ名「サンプルテーマ」から取ったディレクトリ名となります。別のテーマを作ってアップするときは、テーマ名を英語(半角英数とハイフンやアンダーバーなど)で表したディレクトリ名をつけることを推奨します。オリジナルテーマを有効化するファイルをftpでアップしても、まだブログの外観は変わっていないはずです。これは、テーマが有効化されていないからです。テーマをクリックしてください。すると、以下のような画面が出てきて、その中に「テストテーマ」があると思います。テストテーマの「有効化」をクリックしてください。これでトップページにアクセスすると、以下のようにindex.phpに書いた内容が表示されると思います。(管理画面にログインしているので、上にはWordPressのヘッダーが表示されているかもしれません。)(上は、真っ白な画面に文字だけあるのでわかりにくいですが、画像です。)記事一覧も何も表示されていませんが、これはindex.phpにそういう記述をしていないからです。オリジナルテーマをカスタマイズする前節で一応オリジナルテーマを作ることができましたが、あまりにも何もないテーマになりました。ここからカスタマイズしていく必要があります。カスタマイズする方向としては以下のような物があると思います。そもそも意味のある情報が何も表示されないので、情報が表示されるようにする。他のページへのリンクを貼るスタイルが何も入っていないので、cssを設定したり、画像を表示したりして、表示をリッチにする。その他、コメントを付けられるようにしたり、記事を検索できるようにしたりなど、機能を充実させる。検索エンジンに引っかかりやすいように、SEO対策をする。出せし、記事にリンクできるようにします。index.phpを以下の内容に更新してみてください。?>これは、上で特に説明もなくpage.phpなどに書いた記述とほぼ同じになります。詳しくは説明しませんが、以下のようなループを作ると、ループの中で記事の情報を使うことができます。ここに記事の情報を使ってなにか表示する。?>ここに記事の情報を使ってなにか表示する。?>例えばループの中でthe_permalink()を呼べば記事のリンクが出力され、the_title()を呼べばタイトルが出力されます。page.phpではthe_content()を呼び出していましたが、これを実行すると本文が出力されます。これで記事の一覧とリンクが出るようになりました。最後にここまでで、テーマ作りの基礎を説明しました。これだけでも、既存のテーマのどのファイルのどこをいじったら変更できるのかは、ある程度わかっていただけたかと思います。(htmlの作り方とcssの作り方はこのサイトでは説明しないので、頑張ってください。)とはいえ現状だとできないこともたくさんあるので、それは他の記事で説明していけたらと思います。お楽しみに!また、wordpressのテーマ作成はできそうだけど、セキュリティ面に不安を感じるという方は、wp.makeでワードプレスのプロフェッショナルによる月額4万円の保守サービスを提供しているので、もしよければお気軽にお問い合わせください。"いいね!"Facebookで更新情報をお届け。「wp.make」お見積もりのご依頼やご相談など、まずは下記フォームよりお問い合わせください。WordPressでのサイト開発を専門に行う弊社が、どのような内容にもお答えさせて頂きます。株式会社プレートSEO対策やWeb制作・システム開発で実績のある企業です。WordPressに特化したチームがお客様の課題を解決します。wp.makeとはワードプレスに最適なサーバーなどインフラ周りのご提案から、導入後のワードプレスの使い方のフォローまで、どのようなご要望でも、対応可能な低価格で高品質なWordPressでのwebサイト制作、カスタマイズの外注サービスですwp.support保守サービスとはワードプレスを利用する際にネックになりがちなのがセキュリティ面です。wp.support保守サービスは、様々なサーバ環境に対応する保守・運用・管理サービスです。バージョンアップ対応や、セキュリティ対策、バックアップなどの基本的な対応を低価格で実行いたします。reserved.WordPressをもっと便利に安全にWordPress運営に役立つ『wp.makeメルマガ』の登録はこちらから。最新のセキュリティ対策やおすすめプラグイン情報に加え、緊急対応が必要な情報は号外でお知らせします!WordPress運営に役立つ『wp.makeメルマガ』の登録はこちらから。緊急対応が必要なセキュリティ情報等は号外でお知らせ!【メールアドレス。