メニュー

原因不明との戦い

2016年8月3日 - iwane

unknown02今日はwordpress化一色の日でした。
(というか、まだ終わってません・・・)
昨日から取りかかってる作業で本日やることにしていたのは

1.カテゴリー一覧へのリンクをつける
2.画像のサムネイルをとってくるタグをつける
3.投稿記事の子カテゴリのスラッグを読み取り<div>のclassにする
4.ご機嫌ななめな(動かない)mixitupをなんとかする
の4つでした。

1と2は無事解決したので、手順を載せておきたいと思います。

 

1.カテゴリーアーカイブページへのリンク

普通は、(wordpressの外観→メニューなどの)ナビゲーションメニューを利用した方が楽なのでしょうが、そのナビゲーションで作ったリンクにCSSをつけるのが面倒くさいな・・・と思ったのが間違いでした。
まず検証で、想定しているcategory.phpを使って一覧が出るか(index.phpを使わないか)確かめようとurlの直書きで検証してみたら、うまくリンクせず、
次に、しかたないとメニューを使ってカテゴリーのボタンをつくり押してみたら、サクラサーバーから「ページは表示できない」のエラーメッセージ・・・が返ってきたとこで、昨夜はふて寝で終わり、
今朝、再度の直書urlを挑戦したら、今度はきちんとリンクが飛ぶという不思議な現象に見まわれました。
(最初の直書きはきっとスペルミスだったんだ・・・と思うことにしました。)
直urlがうまくいったので、navのul li aタグのところにリンク関数でカテゴリーのアドレスを取得する以下のコードを入力

●<a href=”<?php echo get_category_link(3); ?>”><button>リンク</button></a>

この、()内の数字は表示したかったカテゴリーIDなのですが、TOPページ表示であったため(投稿記事ではないので)getで取ってこれないと判明し、手っ取り早くadminのデータベースのテーブルからterm_idを確認して直書きしました。

ここまできて、やっぱり通常のwpの機能を使った方が早かったかなと、若干後悔しながらの作業です。

 

2.画像(一覧表示で投稿記事内の画像)をサムネイルとしてとってくる

こちらは、検索したら手順がすぐに見つかったので、コピペで対応・・・
と思ったら、またもやサクラサーバーから「ページは表示できません」のメッセージ(疲労が倍に)
fanction.php側も色々いじっていたので、一旦function.phpを元に戻すととりあえず復旧。
ちょっと、心を落ち着けて、もう一度同じ要領でコピペし再度実行したら今度は成功(またもや原因不明・・・おそらくコピペミス??)

なんだかよくわからないまま進んでるのですが、成功したコードは以下です。

●fanction.php内の記述
function catch_that_image() {
global $post, $posts;
$first_img = ”;
ob_start();
ob_end_clean();
$output = preg_match_all(‘/<img.+src=[\'”]([^\'”]+)[\'”].*>/i’, $post->post_content, $matches);
$first_img = $matches [1] [0];

if(empty($first_img)){ //Defines a default image
$first_img = “画像が無いときに表示する画像のパス“;
}
return $first_img;
}
●index等での記述
<img src=”<?php echo catch_that_image(); ?>”>

 

は、一部のカテゴリーが親と子が入れ子になっているという現象に見舞われ
もう一度記事の投稿のし直しが必要なのか・・・・と(面倒なので)悩んでいるとことです。

 

のmixitupにいたっては、魂が抜けたように動きません。
(じゃかん諦めぎみです)

 

unknown03ここまできて、一番の課題は「原因が分からない」という事です。
不具合の要因がはっきりしている場合は、次回から注意して作業に向かうことができるのですが、今回色々やってたらいつの間にか直ってるぐらいの感覚で、原因不明のまま棚上げになっています。
そのため、また何時地雷?を踏むかわからない状態なので、作業は遅まきながらも進んではいるのですが、内容としては全くよろしくはない!というところです。

(くたびれた)ヒヨっ子には、難しい作業が続きますが、一つ一つ紐解いていきたいと思います。