私の運営するサイトで(http://longtail-japan.com)にてブログ(wordpress)を下層のディレクトリ(http://longtail-japan.com/blog/)に設置しました。
このブログの更新記録をトップページに日付と更新した内容のタイトルを表示させたいのですがどの様にすればいいでしょうか?
当方、自分でHPを作りましたがタグの打ちかえ程度しかできませんので出来ればこれを貼り付ければ設置出来るような形で教えていただけると幸いです。出来るだけポイントつけますので是非教えてください。
設置場所はトップページのサイドメニュー下でサーバーはロリポップを使用しています。
WEBページの文字コードは「Shift_JIS」で間違いないですね?
WordPressが吐き出すRSSを処理するPHPスクリプトを作成して、トップページ側からSSIで呼び出して使用します。
・まず、以下の内容のファイルを「what-new.php」という名前で作成して、文字コードを「UTF-8」(BOMなし)にして保存します。
(※トップページと同じ階層に「cgi」フォルダを作成して保存してください。)
$url = 'http://longtail-japan.com/blog/?feed=rss2'; $xml = file_get_contents($url); $rss = simplexml_load_string($xml); $title = '更新情報'; // タイトルを指定 $nums = 7; // 表示件数を指定 $maxnum = count($rss->channel->item); $cnt = ($nums < $maxnum) ? $nums : $maxnum; $title = mb_convert_encoding($title, "SJIS", "UTF-8"); if(isset($rss->channel->item)) { echo "<div class=\"waku\">\n"; echo "<h4>". $title ."</h4>\n"; echo "<ul class=\"navmenu\">\n"; for($n = 0; $n < $cnt; $n++) { $date = strtotime($rss->channel->item[$n]->pubDate); $date = mb_convert_encoding(date('[n月d日]', $date), "SJIS", "UTF-8"); $htmltext = "<li><a href=\"" . $rss->channel->item[$n]->link . "\">"; $htmltext .= mb_convert_encoding($rss->channel->item[$n]->title, "SJIS", "UTF-8"); $htmltext .= " ". $date . "</a></li>\n"; echo $htmltext; } echo "</ul>\n"; echo "</div>\n"; }
※表示件数で指定した件数がRSSで出力された件数より大きい場合、RSSで出力された件数分だけ表示します。
・次にトップページ「index.html」を開いて、表示したい位置に次のコードを追加します。
<!--#include virtual="./cgi/what-new.php" -->
※サイドメニューの一番下(「エリア別提供サービス」の下)に表示するのでしたら、310行目付近の「<!-- #EndLibraryItem -->」の直後に追記してみてください。
・さらに「index.html」のファイル名を「index.shtml」に変更します。(ロリポップでSSIを使用する為に必要です。)
http://lolipop.jp/manual/hp/cgi/
※他のページからのリンクの修正も忘れないでください。
分からない所がある場合、コメント欄をオープンしてくださった方がやり取りしやすいです。
ご回答有難うございます。又確認が遅くなってしまい大変申し訳ありません。上記記述ですべてファイルを作成し、ファイルをアップロードしてみましたがindex.shtmlに直接アクセスしましたが画面が表示されなくなってしまいました。
記述方法が間違っているのでしょうか?