テーマを変更する②

WordPressで小説サイト

テーマ変更に際して今回行ったカスタマイズについてまとめてみました。

サイドバーの使い途

 今まで当サイトは、基本的に1カラムでやってきました。小説サイトという性質上、ストーリィに集中できるようにという配慮なのですが、今回テーマ変更にあたり、実直に「WordPressで小説サイト!」や「寝言」「天からキャベツが降ってきた!」等のコンテンツについては…どっちかというと検索が容易なほうがいいんじゃないかという結論に達したのでした。
 まあ、動機としてはそれだけではなくて…Cocoonの場合は「Cocoon設定」の「全体」タブからサイドバーの左右はもとより、その表示状態も以下のリストから自由に選べるのです。

  • 全てのページで表示
  • 全てのページで非表示
  • フロントページで非表示
  • インデックスページで非表示
  • 固定ページで非表示
  • 投稿ページで非表示
  • 404ページで非表示

 つくづく親切なことです。
 当サイトの場合、「固定ページで非表示」としておけば、小説が表示される固定ページでは1カラム、「WordPressで小説サイト!」や「寝言」「天からキャベツが降ってきた!」等、投稿およびカスタム投稿タイプで作成したページではサイドバーつきの表示となるわけです。サイドバーにはさしあたって「検索」のウイジェットとタグクラウドを置いてみました。RSSや最近の投稿が表示されるようにもしています。
 ご意見ご感想などいただければ幸い。

スキンについて

 Cocoonにはたくさんのスキンが用意されており、少しずつ違う雰囲気のサイトを一瞬で作れるというスゴい仕組みになっています。実はいくつか試してみたのですが…実のところ、確かに面白いけど何か違う。そこで、とりあえずスキンについてはまだ使用しないことにしました。ま、柳がワガママだって話ですな。ああしたい、こうしたいが細々こまごまあると。
 もう少し練習してみて、また使いでがありそうならまたトライしようと思います。

パンくずリスト、さらにはそれを上下につける…javaスクリプト

 前テーマ「Scribe」の時には、プラグイン「Breadcrumb NavXT」を利用してパンくずリストをつけていました。これはこれで非常に使いでのあるプラグインだったのですが、「Cocoon」自体にパンくずリストをつける機能がついていたので、そっちを使ってみることにしました。減らせるプラグインは減らす、というのも、実は今回テーマ変更に踏み切った1つの理由でもあります。
 「Breadcrumb NavXT」の場合はテンプレートにコードを直接書き込まないといけませんが、「Cocoon」の場合【Cocoon管理メニュー】→【投稿】もしくは【固定ページ】のタブからパンくずリストの表示・非表示だけでなく、以下のように表示位置を設定できます。

  • 表示しない
  • メインカラム手前
  • メインカラムトップ
  • メインカラムボトム(デフォルト)
  • フッター手前

 ただ、この場合一カ所にしか表示できない仕様になっているので、これを本文上と下に表示できないかと思って調べてみました。スタンダードにphpに書き込むというやり方もあったのですが、なぜか表示されず。そこでもう少し調べてみると、javaスクリプトで表示させる方法というのがありましたので、それを利用しています。

 ちなみに、Cocoon子テーマのテーマファイルの中にはjavaスクリプトを書き込むためのファイルが存在し、「ここに追加したいJavaScript、jQueryを記入してください」というアナウンスが記載されています(javascript.js)。親切だなぁ。

ページネーションさせる為に固定ページテンプレートを弄る

 一番最初にやったのがこれ。とにかく固定ページにページネーションが出来ないと、小説を思った順番通りに提示することが出来ませんから。
 そのためにとりあえず開いたのがpage.php(親テーマからコピーしてきます)。ここに

<?php //固定ページ内容 
get_template_part('tmp/page-contents'); ?>

…という記述があるので、ふむふむ、固定ページの内容はtmpディレクトリのpage-contents.phpというファイルに記述の仕方が載っているのだな、となります。そこで今度は(tmpディレクトリを作ってその下にpage-contents.phpを親テーマからコピーして)page-contents.phpを開くと

<?php //本文の表示
get_template_part('tmp/content') ?>

…という記述が見つかります。なるほど、固定ページの本文はtmpディレクトリのcontents.phpというファイルに記述の仕方が載っているのだな、となります。ここまでわかったら後は、この上下に

<?php
the_post_navigation( array(
'prev_text' => __( '&laquo prev : %title' ),
'next_text' => __( 'next : %title &raquo;' ),
'in_same_term'	 => true,
) ); 
?>

 という記述を追加。これで、本文の上と下にページネーションが表示されます。
 当サイトですと、実際には上記page.phpとpage-contents.phpにそれぞれpage-***(何でもイイらしいですが、とにかく後で開いて判りやすい名前).phpとpage-contents-***.phpという分岐用のファイルを作ってページネーションするテンプレートとそうでないテンプレートを使い分ける仕組みを作っています。
 この場合、複写したpage-***.phpに以下の記述を入れておけば、固定ページの編集画面にある【テンプレート】という項目でテンプレートを選択することができます。

/*
Template Name: ページ送りなし
*/

 当サイトの場合、デフォルトではページネーションありのテンプレートにし、必要に応じてページネーションなしとする仕様にしました。

固定ページにカテゴリを適用させる(function.php)

 上記ページネーションは基本的に作成日時で順序が決まります。
 しかし、それでは1つの小説を書いている途中で別の小説をアップした場合、まったく別ジャンルのお話がページネーションに割り込んでしまう。これを防ぐために、当サイトでは固定ページにカテゴリを適用させ、そのカテゴリ内でのページネーションになるよう細工しています。テンプレートに書き込んだ記述のうち、

'in_same_term'	 => true,

 というのがそれ。本来、カテゴリだのタグだのは投稿ページについた機能なのですが、それを固定ページに適用させようとした場合、function.phpに細工することが必要です。function.phpというと、一歩間違えるとサイトが吹っ飛び管理画面にもアクセスできなくなるという爆弾なので極力触りたくはないのですが…まあ、だいぶこの辺りは度胸がつきましたので(笑)
 実際の記述については「固定ページにカテゴリーを設定」でググッていただくと山のようにヒットします。ただ今回は「Scribe」からの丸写しで、出典不詳なのでここでは掲載しないことにします。

アピールエリアというもの

 「Cocoon」にはアピールエリアという機能がありまして、ヘッダー下の目立つ場所にどーんと画像とともに文章を載せられます。当サイトでは文章は載せず、看板代わりに季節の画像を掲載することにしました。【ダッシュボード】→【Cocoon設定】の【アピールエリア】タブから設定できます。

ブログカードについて

 最近は文字だけのリンクというのはあまり流行らないようですね。
 確かに目立ってナンボという話もありますし、体裁を整えることもサイト閲覧の便宜上大切なことだとは思います。このため、テーマ変更に伴いサイト内外へのリンクは基本ブログカードという機能を使うことにしました。

 こんなやつです。
 ボックスにURLを書き込むだけで見栄えの良いリンクが生成されるので便利といえば便利。「参考サイト」などラベルもつけられるので、参考にしたサイト様を紹介するにも便利な機能かと思います。ただ、いちいちURLを打ち込まなければならないので、子ページ一覧のよう公開すれば勝手に追加されるモノというわけではありませんから、そこは使い分けということでしょうね。
 そうそう、URLを打ち込む(まあ、基本コピペですね)際には必ず「プレーンテキストとして貼り付け」しないと巧く表示されないようです。ご注意を。(※リンクとして貼り付けるとエラーになる)
 

カスタム投稿タイプについて

 当サイトにはカスタム投稿タイプが複数存在します。
 カスタム投稿タイプを利用する場合、プラグイン「Custom Post Type UI」を使用していれば引越ししても然程の調整は必要ないのですが、作らなければならないのがテンプレート。カスタム投稿タイプを思い通りに表示させるには、きちんと「single-***(カスタム投稿タイプのスラッグ).php」というテンプレートを作っておかないと、(特にページネーション関係が)巧く働かないようです。
 有り体に言えば、特に細工しなくてもページそのものは表示されたのですが…ページネーションが出来なかったのです。本稿「WordPressで小説サイト!」の下に出てくるアイキャッチ付きのあれですね。カスタム投稿タイプにも適用させてやろうと思ったのですが巧くいかず、最終的にはカスタム投稿タイプ用のテンプレートを作って上記固定ページテンプレートにも使用したページネーション用の記述をすることで解決しました。

コメント