BLOGGER タグリスト(クラシックテンプレート)
BLOGGER タグリスト(クラシックテンプレート)

BLOGGER タグリスト(クラシックテンプレート)

BLOGGERでFTP公開サイト用のタググラウンドのつづき。
以前BLOGGER FTP公開サイトのラベルでの分類方法に書いたが、
今回はタグの項目数も取り出してみた。

<?php
$dir = 'サーバーのlavelsのパス';#ラベルのパス
$url = 'https://blog.peaks.jp/labels/';
$labellist ="<h2 class='sidebar-title'>".mb_convert_encoding("ラベルリスト", "EUC-JP", "sjis")."</h2><ul class='archive-list'>";

if($handle = opendir($dir)) { #ディレクトリハンドルを獲得
while(false !== $file = readdir($handle)){ #ファイル名獲得
list($filename,$html) = split("\.", $file); #ファイル名と拡張子を分割
if(!$filename){continue;}
$filename = str_replace("__", "/", $filename); #ファイル名にするためbase64で/が__に変更されているのを戻す
$labellist .="<li><a href='$url$file'>";
if (preg_match("/=([A-F0-9]{2})/",$filename)) {
# $labellist .= quoted_printable_decode ($filename); #quoted_printable_decodeでローマ字+日本語に変換
$labellist .= mb_convert_encoding(quoted_printable_decode ($filename), "EUC-JP", "UTF-8") ;#BLOGで設定しているcharsetに合わす場合
}elseif(mb_detect_encoding(base64_decode($filename)) == "UTF-8"){
# $labellist .= base64_decode($filename) ; #encodingがUTF-8ならbase64_decodeで日本語変換
$labellist .= mb_convert_encoding(base64_decode($filename), "EUC-JP", "UTF-8") ; #BLOGで設定しているcharsetに合わす場合
}else{
$labellist .= $filename ; #ローマ字のファイル名はそのまま表示
}
$labelhtml = file_get_contents("$dir$file");
if (preg_match_all( "/<h3 class=\"post-title\">(.*)<\/h3>/i",$labelhtml,$titlename)){
$labellist .="(".count($titlename[0]).")<br />";
# foreach( $titlename[1] as $val2){$labellist .="$val2<br />";}
}
$labellist.="</a></li>";
}
}
closedir($handle); #ディレクトリハンドルを閉じる
$labellist .="</ul>";
header ("Content-Type: text/html; charset=EUC-JP");#javascriptとしてEUC-JPで表示する(環境に合わす必要があります)
echo "document.write(\"";
echo $labellist;
echo "\");";
?>

という感じで変数に代入しjavascriptで書き出します。

Labelグループのフォルダにあるファイルを1件ずつ取り出しファイルを読み込んで
テンプレートで使われる<h3 class=\”post-title\”>(.*)<\/h3>を探して件数を数えています。
$dir = ‘サーバーのlavelsのパス’ の指定をアーカイブに変えたらアーカイブも取り出せます。
$titlename[1]にすると、タイトルだけの取り出しもできますよ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください