当サイトには広告が含まれております

【Simplicity編】トップページだけに表示するウィジェットエリアを作る

この記事は最終更新日から4年経過しています。内容が古い可能性があります。

トップページの投稿一覧の上に「あいさつ」のような文章を表示させたくて、前回はtwentyfourteenのトップページ用にウィジェットエリアを作りました。今回は私の周りでじんわりブームになっているテーマSimplicityに同じように「あいさつ」のような文章を表示させるトップページウィジェットエリアを作る方法について書きます。

記事をざっと見る

Simplicityの子テーマを使います

Simplicityの子テーマについて書きます。既に子テーマを使っている時は次へ飛んでください。

Simplicityについては「テーマSimplicityはアフィリエイトサイトの他すべてのサイトにいい!」こちらを見ていただけるとどんな感じにいいか分かっていただけるかと思います。アフィリエイトに向いたテーマですがアフィリエイトをしなくてもスッキリとしたデザインで管理画面から色々設定できるのでアフィリエイトサイト以外のあらゆるサイトにとって良いテーマだと思います。そんなこんなで私の周りではこのSimplicityがじんわり流行しています。

カスタマイズをする場合はSimplicityそのものではなく、子テーマをインストール&有効化してそちらを使うようにします。

子テーマはSimplicityのサイトからダウンロードできるので、

http://wp-simplicity.com/downloads/child-theme/

こちらの

ダウンロード をクリック。保存した、simplicity-child20150920a.zip (2015…あたりは更新によって変わります)を

ダッシュボード 外観>テーマ をクリックして、



新規追加
 をクリック

テーマのアップロード をクリック

先ほど落としたzipファイルを指定して今すぐインストールをクリックします。

有効化 をクリックします。今までSimplicityでサイトをつくってきていた場合は、テーマが変わるために外観>カスタマイズから指定した内容をもう一度指定する必要がありますのでご注意ください。

Simplicityの子テーマにトップページメイン用ウィジェットを追加する

やることはぼほtwentyfourteenのときと同じです。

子テーマのfunctions.php

if (function_exists('register_sidebar')){
    register_sidebar(array(
        'before_widget' => '<div class="top_main_widget" id="%1$s">'."\n",
        'after_widget' => '</div>'."\n",
        'before_title' => '<h3>',
        'after_title' => '</h3>',
        'name' => 'トップメイン',
        'id' => 'top_main_widget'
    ));
}

を追加します。twentyfourteenの時に較べてタグやclassをシンプルに(twentyfourteenのとき、いらないものがあったかも(^_^;)しました。

子テーマのstyle.css

.top_main_widget {
  background-color:#eee;
  padding:10px;
  margin-bottom:10px;
}

を追加します。Simplicityの場合、メインの枠の中にしかトップページメインウィジェットエリアを入れる事ができなかったので(あるいは私の力不足)、投稿一覧と区別できるように背景にちょっと色を入れてみました。

親テーマSimplicityから home.php を子テーマにコピーして、ファイルを開き、

<?php //トップページ用 ?>
<?php get_header(); ?>

<?php get_template_part('list') ?>

<?php get_footer(); ?>

この部分に1行足して

<?php //トップページ用 ?>
<?php get_header(); ?>

<?php dynamic_sidebar('top_main_widget'); ?>

<?php get_template_part('list') ?>

<?php get_footer(); ?>

このようにします。dynamic_sidebar(‘top_main_widget’) でこの場所にトップページメインウィジェットを表示します。

ダッシュボードでトップメインに追加する文言を指定する

これでダッシュボード 外観>ウィジェット を見ると、

このように トップメイン というウィジェットエリアが追加されています。

ここに、



利用できるウィジェット
 から テキスト をドラッグ&ドロップして

ここに

トップメインに表示したい内容を入力して、保存 をクリック

表画面を見ると、

「ごあいさつ」が追加されました(^^)/

Simplicityに元々入っている before-main.php で表示してみる

このカスタマイズについて検索しているときに、

Simplicity ウィジェットスペースの追加

というページを見つけました。before-main.phpというものが最初から入っているみたいです。これを使って、先ほどのメインウィジェットを表示してみました。

ウィジェットが2カ所出てしまうと変なのでhome.phpからは先ほど追加した行を削除しておきます。

子テーマフォルダに before-main.php というファイルが入っているので開きます。

<?php
//メインカラムの手前に何かを挿入したいときは、このテンプレートを編集
//例えば、3カラムの左サイドバーなどをカスタマイズで作りたいときなどに利用します。
?>

このように何も入っていないのですがこれを

<?php
//メインカラムの手前に何かを挿入したいときは、このテンプレートを編集
//例えば、3カラムの左サイドバーなどをカスタマイズで作りたいときなどに利用します。

dynamic_sidebar('top_main_widget');

?>

こんな風に dynamic_sidebar(‘top_main_widget’) というトップメインウィジェットを表示するコードを追加します。

これで表画面を見てみると、

こんな感じに横幅いっぱいのウィジェットで表示されました(^^)/。

Simplicityでウィジェットを追加するときにトップに大きく出したければこんな風に出すこともできますね。あ、しかしこのコードだと

どのページの頭にも表示されてしまうので、トップページだけに表示したければ before-main.php の追加した部分を

if (is_front_page()){
    dynamic_sidebar('top_main_widget');
}

このように トップページだったら表示する というコードにするといいと思いますこれで先ほどのページを表示すると、

トップページ以外にはウィジェットが表示されなくなりました。

先ほどhome.phpにはこのif文を入れませんでしたが、それはhome.phpはトップページでしか利用しないファイルなのでif文を書かなくても必ずトップページだからでした。

もしhome.phpに入れたのと同じ場所にトップページ以外の時もウィジェットを表示したかったら index.php,category.php,single.php,page.php(もしかして他にもあるかも)などのファイルを親テーマのSimplicityからコピーしてきて dynamic_sidebar(‘top_main_widget’) を表示する行を追加します。

[amazon_searchlink search=”WordPressデザイン”]

この記事が気に入ったら
いいね または フォローしてね!

あなたのシェアが励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (19件)

  • はじめまして、コメント失礼いたします。

    まさしくSimplicityでトップページだけにお知らせを表示したく、ここ二日くらい悩んでいたのですが、こちらの記事を参考にさせて頂き、やりたいことが実現できました。しかもこの方法だと更新の際、ダッシュボードからできるので本当に助かります。

    一言、お礼を申し上げたくコメントさせていただきました。

    • 倉橋さん、おはようございます。
      記事が役立ったということが分かってとてもうれしいです(^^)/。これからもいろいろ書いていきますのでご愛読いただけたら幸いです!

  • はじめまして。
    Wordpressを使い始めたばかりで表示方法を悩んでいたところでした。
    こちらの記事を参考にして少しづつですけど前に進めそうです。
    トップページに「ごあいさつ」が表示された時は嬉しくて声が出ちゃいました(≧▽≦)
    ただ背景に色を付けるだけが反映されないです・・・。
    スタイルシートへの書き込みしているつもりですけど上手くいかないです。
    どこで間違えているんでしょうか?
    本当に初心者で申し訳ないのですが
    宜しくお願いします。

    • miho.sさん、こんにちは。トップページにごあいさつ、ご利用いただきありがとうございます。
      背景の色が反映されないということですが、使っている子テーマのstyle.cssに

      .top_main_widget {
      background-color:#eee;
      padding:10px;
      margin-bottom:10px;
      }

      といれてあれば色は変わると思うのですが。。。子テーマのstyle.cssでなくて違うファイルにしてしまっていないかとかないでしょうか?

      それでもだめだったら

      .top_main_widget {
      background-color:#eee;
      padding:10px;
      margin-bottom:10px;
      }

      のように頭の空白をとってもらうと治るかもしれません(最近ちょっと空白で問題が起こってます)。

      あと、それでもダメでしたら

      'before_widget' => '
      '."\n",

      のように直接色を指定しちゃうとかいかがでしょうか?

  • […] トップページだけに表示するウィジェットエリアを作るーSimplicity編トップページの投稿一覧の上に「あいさつ」のような文章を表示させたくて、前回はtwentyfourteenのトップページ用にウィジェットエリアを作りました。今回は私の周りでじんわりブームになっているテーマSimplicit … 続きを読む トップページだけに表示するウィジェットエリアを作るーSimplicity編 →ryus.co.jp […]

  • まさしくこの方法が知りたくてたどり着きました。
    おかげで、想い描いていたスペースが実現できそうです!
    本当にありがとうございました!

    • はしさん、こんにちは!記事がお役に立てたようで、お知らせいただきとてもうれしいです(^^)/。コメントありがとうございました。

  • […] トップページだけに表示するウィジェットエリアを作るーSimplicity編トップページの投稿一覧の上に「あいさつ」のような文章を表示させたくて、前回はtwentyfourteenのトップページ用にウィジェットエリアを作りました。今回は私の周りでじんわりブームになっているテーマSimplicit … 続きを読む トップページだけに表示するウィジェットエリアを作るーSimplicity編 →ryus.co.jp […]

  • […] トップページだけに表示するウィジェットエリアを作るーSimplicity編トップページの投稿一覧の上に「あいさつ」のような文章を表示させたくて、前回はtwentyfourteenのトップページ用にウィジェットエリアを作りました。今回は私の周りでじんわりブームになっているテーマSimplicityに同じように「あい […]

記事をざっと見る