【129日目】人気記事へのリンクを作成したい-5
Posted: Last Update:
数日前から「人気記事へのリンクをトップページなどに追加する」という課題に挑戦しています。昨日はトップページに人気記事を追加できたので、今日はサイドバーに人気記事のリンクを入れていきたいと思います!
昨日までの成果
まずはアクセス数を記録したファイルから、URLとアクセス数を取り出し、アクセス数順に並び替えるPHPを書きました。
$str = file("$mypath/top/access.txt");
foreach($str as $value){
$devide = strpos($value, " ");
$length = strlen($value);
$url = substr($value, 0, $devide);
$count = str_replace(" count:", "", substr($value, $devide, $length));
$link[] = [intval($count), $url];
}
arsort($link);
?>
そのPHPをもとに、昨日は「人気記事」へのリンクをトップページに入れることができました。画像でみるとこんな感じです。一番アクセス数がある記事が最新の記事なので、ちょっと分かりにくいですが、「新着」とは2つ目以降が違うことが分かります。
今日はサイドバーにリンクを入れたい
今日は、PC画面だと画面右の、スマホ画面だと画面下に配置されているナビゲーションバーに人気記事へのリンクを入れていきます。ほぼ使いまわしなので、早速作業してみましょう!
はい、入りました!(10分ほどかかりました)
PHPはこんな感じで書いています。既にあるPHPを使いまわしたので、意外と簡単でした。
$str = file("$mypath/top/access.txt");
foreach($str as $value){
$devide = strpos($value, " ");
$length = strlen($value);
$url = substr($value, 0, $devide);
$count = str_replace(" count:", "", substr($value, $devide, $length));
$link[] = [intval($count), $url];
}
<h3>人気記事</h3>
$i = 1;
foreach($link as $value){
$str = str_replace('article', 'articles', $value[1]);
$str = "$mypath/$str.txt";
$date = new datetime(str_replace('/article/', '', $value[1]));
if (is_file($str)) {
require($str);
echo '<a href="', $myurl."/".$value[1] , '"><div class="asidelinkbox"><span>', $date->format('Y.m.d') ,'</span><p>',$articletitle, '</p></div></a>'."\n";
$i++;
}
if($i>3){break;}
}
リンクを入れる場所の調整
なんだか記事の写真ばかり並んでいるので、ちょっと場所を調整してみます。最新の記事を最上部に残したまま、新着は記事の所に移動しましょう。
こんな感じになりました。
今日はここまで
ここで時間が来てしまいました!今日はここまでにしたいと思います。
明日もう一度冷静な目でデザインを見てから、本番環境に移します。本番環境に置いたら、この作業も終わりです!
そういえば、開発記事もちゃんと書いているんですよ~。遅々としてすすみませんが…。最近姉妹サイトでやっている漢検1級の勉強に忙しすぎて、なかなか記事を書く時間が取れません…。
ぼちぼち書いていますので、1週刊以内にはあげたいです。では、また明日!