【WordPressのトップページのみ表示を変える方法】jQueryスライドはトップページだけでいいや

CMS

最近、WordPressのカスタマイズばっかりやっているんですがね。やっているとどうにも止まらなくなるというか、「このサイトの技術どうやってるんだろう・・・WordPress使ってるみたいだけど。。」なんて思って調べると、知らないことがたくさんありますね。で、他でもやってるとなんか不思議な焦りが出てきて、やれるまでやろう!みたいな感じになります。

このブログもWordPressで作っているんですが、まさに今やれるまでやろう状態になっていまして。トップページをちょっといろいろいじっています。いじってる、といっても巷でよくあるjQueryのスライドショーを入れた程度なんですけどね。スライドショーは見た目が動きがあって、惹かれる部分はたくさんあります。

かっこいいものは入れたい。なのでWordPressでも前々から入れてみようと思っていました。まあそんなスライドショーなんですがね。どのページにもあるとうざったいと私は思ってしまいます。

そこで「トップページにはスライドを表示したいけど、他のページや投稿では表示させたくない。つまり、トップページのみ表示を変えたい

これをやりました。

WordPressはやりたいと思ったことの大抵は出来てしまうくらいの便利なCMSなんですが、新しい機能追加や編集をしたことへの他への影響も考慮に入れないといけないですよね。今回の例では、トップページだけ表示させる「条件分け」をしないといけない。この「条件分け」の扱いがWordPressだけでなくて、CMSを上手に利用できるコツのような気がします。

というわけで、以下で私が対応した方法を紹介します。

トップページのみ表示を変える条件文を書く

WordPressで「トップページのみ表示を変える」。これをやる方法はとても簡単で、以下の条件文を使います。

【phpコード】

<?php
 if (is_home() && !is_paged() ){
   トップページのみ表示させるコンテンツ
 }
?>

簡単に説明を・・・

is_home → トップページかどうか
is_paged → 複数にまたがるメインページかどうか

is_pagedについては、「!」が先頭について「!is_paged」になっているので否定になりますね。

「is_paged」についてよくわからないすね。なので調べました

それにしても、私はis_pagedの動作がちょっとわかりにくいですね。コードをただコピーしてよくわからないまま使うと、後で苦労するので調べました。

codexを参考にしました。(英語版しか見当たらなかった・・・)

Function Reference/is paged

Note: This refers to an archive or the main page being split up over several pages,

this does not refer to a Post or Page whose content has been divided

into pages using the <!--nextpage--> QuickTag.

翻訳を頑張ってみたんですが、要は

  • アーカイブページ
  • 「次の10件」みたいなページ送りを使った複数のページにまたがるメインページ

を指すものとして「is_paged」を使うようです。

うーん、自分で訳したんですが、なんとなくわからないような・・・ブログって、たいてい「次の10件、前の10件」とか「ページ送り」がついているじゃないですか。「is_paged」はそこを判定する関数で、「is_home」と組み合わせる。

「is_home() && !is_paged()」としてif文の条件とすることで、

  • アーカイブページには表示させない
  • トップページだけども、2ページ目以降のページ送りをしたトップページには表示させない

というようにしているんだと理解しました。

条件文をちょっと変更して別の処理も書きましょう

条件文を変更して、アーカイブページの処理を書きます。

アーカイブページとは、WordPressでは

  • カテゴリー
  • タグ
  • ユーザー
  • 日別
  • 月別
  • 年別

にあたるページですかね。他にもあるかもですが、とりあえず私のブログに関係するものは以上です。

下のコードを使ってそれぞれ条件分けをしましょう。

【phpコード】

<?php
if (is_home() && !is_paged()  ) {
 トップのみ表示
} else {
 トップページ以外の表示(アーカイブページ、2ページ目以降のトップページ)
}
?>

トップのみ表示する条件だけではページが寂しくなるので、この処理は結構重要だと思います。

サンプルです。このブログでやるとこんな感じです

【トップページ】

最新記事をスライドで表示させています。うーん、もうちょっとかっこよくしたい・・・

【カテゴリページ】

「雑談など」カテゴリのページ。アーカイブページなのでスライドなし。該当する投稿を一覧表示。

【アーカイブページ】

2012年2月の投稿のページです。アーカイブページなのでスライドなし。該当する投稿を一覧表示。

【タグページ】

「WordPress」タグがついているページ。アーカイブページなのでスライドなし。該当する投稿を一覧表示。

【固定ページ】

スライドなし。投稿の一覧も、もちろんなし。

【個別記事】

スライドなし。投稿の一覧も、もちろんなし。

【検索結果】

スライドなし。投稿の一覧も、もちろんなし。

という感じです。これに合わせてデザインは全体的に見直し中です。もっとかっこよくしたいです。

まとめ

トップページだけに表示させたいコンテンツがある時に、今後も使うんだろうな~と思います。お客さんとお話してて、はっと気づいたんでやりました&記事書きました。

たぶんこれって、けっこうWordPressを触り始めて「初期の段階でやってみよう」と思う技術のような気がします。最近よく、このブログのお問い合わせやgoogle+でWordPressのカスタマイズの案件をいただいてるんですが、お客様から「このサイトみたいにしたいんです」と要望を伺っているうちに、あ、それ知りませんでした・・・!なんて気づかされることが多いです。

お客様の方が知っていて、もっと勉強しないとな・・・って思います。

ただし、技術ってのは方法だけ知ってても実践スキルがないと身に付かないだろうとも思っているので、同じ情報を得てからの習得の速さは、一般の方に比べて負けていられないところですね。やっぱりどんな難易度でもいいし、案件を数多くこなすことがスキルアップや気づきのきっかけになるんだろうな、と思います。と、能書きはこれくらいで・・・今回も参考にさせていただいた記事・書籍があります。

大変参考にさせていただきました。とてもわかりやすかったです。

というわけで、

  • wordpressのjQueryスライドショーはトップページのみでいいと思っている
  • is_pagedについてよくわからないけど、どんな解釈を持っている人がいるのか知りたい

といった方に参考いただければ幸いです。

著者:bouya Imamura