大改造計画をまとめる

「今日のぎんなん」大改造計画の詳細を書いてみようと思います。

pagebarが表示されていなかった

ブログには先週pagebarを表示させていたのですが、「今日のぎんなん」と「Works」には表示させていませんでした。
「Works」のエントリー件数はまだ少ないのでよかったのですが、「今日のぎんなん」はだいぶエントリー数も増えて来た為、
あった方がいいかなと。
それで、ブログに書いたのと同じく、ループの後に

<?php
       if (function_exists('wp_pagebar'))
          wp_pagebar();
      ?>

これを書いたのですが、表示されませんでした。
で、もしかしたら有効化されてないのかな?と思って、プラグイン一覧見てみたのですが、そこにないのです。
でも、ブログには表示させられたということは、ネットワークでの有効化は出来てるはずだよなぁ…。
しかも、設定には出てるんだから…おかしいなあ…。
と思って、ブログのプラグイン一覧を見てみたら、こっちにもありませんでした。
どうやら、プラグイン一覧には表示されないプラグインだったようです…。そういうのも、あるのねー。知らなかった…。
で。それはわかったんですが、だからと言ってでない理由が分からず…色々テンプレートのソースを見て苦戦しました。
結論から言うと、ループタグの誤用が原因でした。
「今日のぎんなん」のindexは、エントリーを横に3つ、縦に3つの合計9件表示させているのですが、その為に

<?php $posts = get_posts('numberposts=9'); ?>

↑これを使っていたのです。
これ、条件付きでループさせるタグで、これは9回ループ、みたいな意味なのです。
これでindexに9件のエントリーを表示させていたのですが、これだと9件だけ表示させて、それ以外のエントリーは表示させない。というような感じになっていたようなのです。
なので、表示させるべき9件のエントリーはindexに表示されてしまっていたので、2ページ目が存在せず、pagebarが表示されなかったのでした…。
なので、ダッシュボードの設定で9件表示させる設定にして、

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
…
<?php endwhile; ?>

というようなループのタグで表示させることにしました。
これは、特に条件を付けずに、エントリーが存在さえすればループさせてくれるタグだったと思います。
それで、無事表示することができました。

TOPページ、「今日のぎんなん」のindexのエントリーにキャッチ画像を使うのをやめた

↑ちょっと表現が難しかったです…なんて言えばいいのかな…。
各エントリーがTOPページ及び「今日のぎんなん」のindexに新着として表示される時に、コメントや日付などと一緒に画像が表示されているのですが。
その画像は、カスタムフィールドに入れつつ、キャッチ画像としても設定した画像だったのです。
カスタムフィールドテンプレートの仕組みがわかっていなかった私は、カスタムフィールドの中から画像だけ呼び出すのは無理なんじゃないかと思っていたのです。
(その辺りに関しては、先日のブログをご覧下さい)
で、実際カスタムフィールドを呼び出すタグで、画像を呼び出してみました!
そしたら!
なんと!
失敗しました!
どのように失敗したかと言いますと、カスタムフィールドに画像を挿入する際、そのままのサイズでは大きすぎるので、300×250くらいにリサイズしてアップロードしています。
リサイズした画像って、クリックすると元の大きさの画像が表示されるようになっているのです。
なので、画像挿入部分のカスタムフィールドには

<a href="http://kamchim.zombie.jp/today/files/today_photo0014.jpg"><img src="http://kamchim.zombie.jp/today/files/today_photo0014-300x225.jpg" alt="" title="today_photo0014" width="300" height="225" class="aligncenter size-medium wp-image-110" /></a>

このようなタグが挿入されるのです。(実際の今日のぎんなんのエントリーに挿入されているタグ)
そして、カスタムフィールドを呼び出すタグは、フィールドをまるっと呼び出します。
なので、画像だけではなく、リンクも一緒に呼び出してしまうのです。
そうすると、エントリー単体のページ(本文とかも載ってるページ)へのリンクが無効になってしまい、実寸の画像へのリンクだけ効いてしまうのです…。
それは…困る…。
なので、一生懸命ググった結果、「エントリーの中の画像を呼び出す」というタグを発見しました!

<?php
      $files = get_children('post_parent=' . $post->ID . '&post_type=attachment&post_mime_type=image&orderby=ID&order=ASC');<br />
      $keys = array_keys($files);<br />
      foreach($keys as $key){<br />
          $file = wp_get_attachment_image_src($key, 'thumbnail');
          echo '<img src="' . clean_url($file[0]) . '" />';
      }
?>

これで、エントリーの中の画像だけを表示させることができます。4行目の一番最後の部分で、呼び出す画像のサイズが選べます。
(画像をアップロードする時にサイズを選ぶのですが、その中から選べるようです。もしかしたらそれ以外でもいいのかも知れないけど、よくわかりません。)
というわけで、これを使ってTOPページと「今日のぎんなん」のindexに、キャッチ画像を使わずに画像を呼び出すことに成功しました。

親テーマと子テーマの関係がややこしい!

そんなこんなの色々作業をしている中で、今まで気付かなかった、「今日のぎんなん」のこのテンプレートを弄っても反映されない…?
という部分があることがわかりました。
具体的には、アーカイブの部分のループです。
ちょっとなんだったか忘れてしまったのですが、(昨日のことなのに…)確か、元々「今日のぎんなん」のindexにはTOPという固定ページを作り、「今日のぎんなん」のブログを表示させる部分にはblogという固定ページを作り、表示させていたのです。
ですが、それが何か不都合があったので、固定ページを使うのやめたのです。
そしたら、今までblogという固定ページで

<?php get_template_part('loop','todayblog'); ?>

というようにファイル名を指定してループを読み込んでいたのですが、固定ページがなくなった為、固定ページに読み込んでいたテンプレートではなく、親テーマのアーカイブを読み込んでしまっていたのです。
子テーマで必要なテーマがないと、親テーマのものを使う…という仕組みなのですが。
それは知ってても、初めはなぜかわからなくて色々大変でした。
その後、固定ページに読み込んでいたアーカイブ用のテンプレートの名前をarchive.phpに変更してオーバーロードすることで解決しました。

ダーッと書いたけど…。これ後で見てわかるかな…。
結構めんどくさかったから、また同じようなことで悩むのはやだな…