投稿者: YOU UCHIDA

  • 関連記事を表示するWordPressプラグイン

    Blogの各記事の終わりに関連してそうな記事を自動で表示させたいと思いプラグインを探してみたところ、関連記事を表示させるWordpressのプラグインはいくつかあったのですが、今回の目的、関連記事を表示+柔軟性のあるプラグインとして『Similar Posts』を導入することにしました。

    Similar Postsの導入方法

    まずはプラグインの前にPost-Plugin Libraryをダウンロードします。

    次にプラグインSimilar Postsをダウンロードします。

    1. Post-Plugin Libraryをダウンロード後、解凍してプラグインフォルダへアップロード
    2. Similar Postsをダウンロード後、解凍してプラグインフォルダへアップロード
    3. Post-Plugin Libraryを有効化
    4. Similar Postsを有効化

    Similar Postsの設置方法

    関連記事を表示させたい場所に以下のコードを挿入します。

    [php]
    <?php similar_posts(); ?>
    [/php]

    以上で関連記事を表示させることが出来るようになります。

    このプラグインを使うことによって、古い記事を埋もれさせないようにすることも出来ますし、何より「この記事とあの記事は関連性があったのか!?」など、Blogを書いている本人が気付かなかった新たな気付きも生まれたりもします。

  • Photoshopが起動しない!?

    忙しいときに限ってトラブルは起こるものなのでしょうか?

    写真を編集しようと思いPhotoshopを起動してみたのですが、さっきまで使えていたPhotoshopが突然立ち上がらなくなってしまいました。
    PCを再起動しても駄目、Photshopを再インストールしても駄目。あぁ、終わった… と思っていましたが対処法は意外にも簡単なことでした。
    そんな、フォトショップが立ち上がらなくなったときの対処法です。

    環境 Windows XP, Photoshop 7

    1. Ctrl + Alt + Shift キーを同時に押したままPhotoshopを起動します。
    2. 「Adobe Photoshop 設定ファイルを削除しますか?」と表示されたら [はい] をクリックします。

    以上で解決。無事Photoshopは立ち上がりました。
    にしても、Photoshopの設定を変えたわけでもなく、突然の出来事だったので焦りました。


    Photoshop ファミリー

  • 自転車生活3日目にして…

    自転車生活3日目にして…

    勢いで始まった自転車ライフから3日目の8/23月曜日、そして初の自転車通勤の帰りに見事これまた初のパンクを経験しました。

    (さらに…)

  • TOKYOBIKE SPORT 9s

    TOKYOBIKE SPORT 9s

    TOKYOBIKE SPORT 9s

    満員電車の地下鉄での通勤にほとほと疲れ果て、もうこうなったら自転車で通勤してやると思い立ったのが8/16月曜日の夕刻。途中下車をして一路新宿のFlagsのOSHMAN’Sへ向かいました。

    (さらに…)

  • MagpieRSSで外部RSSを表示

    ブログは外部のブログサービスを使っているんだけど自分のサイトにブログの更新情報を表示させたい。

    そんな時に使えるのが『MagpieRSS』です。

    MagpieRSSは外部のRSS Feedを取得して解析、そしてキャッシュまでしてくれるPHPで使えるRSSパーサーです。RSS0.9とRSS1.0、RSS 1.0のモジュールとRSS 2.0、Atomの一部に対応しています。

    MagpieRSSの使い方

    例えばindex.phpにブログの更新情報を表示させる場合。

    1. MagpieRSS(magpierss-0.72.tar.gz)をダウンロードして解凍。
    2. rss_cache.inc、rss_fetch.inc、rss_parse.inc、rss_utils.incの4つのファイルとextlibフォルダをindex.phpと同じディレクトリにアップロード。
    3. index.phpのディレクトリの下にcacheという名前でディレクトリを作成パーミッションを777に変更。
    4. index.phpのブログの更新情報を表示したい位置に以下のコードを記入します。

    [php]
    <?php
    error_reporting(E_ERROR); //エラーレポートを表示しない
    require_once ‘magpie/rss_fetch.inc’;
    $url = ‘RSSFeedのURL’; //RSS FeedのURL
    if($rss = fetch_rss($url)){ /RSS Feedがなければ終了
    $title = $rss->channel[‘title’];
    $title = mb_convert_encoding($title, "UTF-8", "auto");
    echo "<h4>$title</h4>\n";
    $rss->items = array_slice($rss->items, 0, 5); //RSS Feedの表示件数
    echo "<ul>";
    foreach ($rss->items as $item ) {
    $title = $item[title];
    $title = mb_convert_encoding($title, "’UTF-8", "auto");
    $url = $item[link];
    echo "<li>$title</li>\n";
    $description = $item[description];
    $description = mb_convert_encoding($description, "’UTF-8", "auto");
    echo "<li>$description</li>\n";
    };
    echo "</ul>";
    }
    ?>
    [/php]

    解説

    [php firstline=”4″]
    $url = ‘RSSFeedのURL’;
    [/php]
    ここに表示させたいRSS FeedのURLを記入してください。

    [php firstline=”9″]
    $rss->items = array_slice($rss->items, 0, 5);
    [/php]
    この場合だと最新から0件目までは非表示、その後の5件を表示します。

    MagpieRSSの文字化け対策

    一部のRSSが激しく文字化けすることがあるのでrss_fetch.incの358行目をISO-8859-1からUTF-8に変更します。

    本文が全部表示されるんですけど

    RSS Feedでエントリー内容を全文表示にしている場合、「$description」だと全文表示されてしまいます。

    「いやいや、エントリーの最初の何文字かだけでいいんだよ。」と仰る方は以下のコードを試してみてください。

    [php]
    <?php
    error_reporting(E_ERROR); //エラーレポートを表示しない
    require_once ‘magpie/rss_fetch.inc’;
    $url = ‘RSSFeedのURL’; //RSS FeedのURL
    if($rss = fetch_rss($url)){ /RSS Feedがなければ終了
    $title = $rss->channel[‘title’];
    $title = mb_convert_encoding($title, "UTF-8", "auto");
    echo "<h4>$title</h4>\n";
    $rss->items = array_slice($rss->items, 0, 5); //RSS Feedの表示件数
    echo "<ul>";
    foreach ($rss->items as $item ) {
    $title = $item[title];
    $title = mb_convert_encoding($title, "’UTF-8", "auto");
    $url = $item[link];
    echo "<li>$title</li>\n";
    $description = $item[description];
    $description = mb_convert_encoding($description, "’UTF-8", "auto");
    $description = strip_tags($description);
    $description = ereg_replace("(\r\n|\r|\n)", "", $description);
    $description = mb_substr($description, 0, 100). "…"; ?>
    echo "<li>$description</li>\n";
    };
    echo "</ul>";
    }
    ?>
    [/php]

    解説

    [php]
    $description = strip_tags($description);
    [/php]
    HTMLタグを取り除いています。

    [php]
    $description = ereg_replace("(\r\n|\r|\n)", "", $description);
    [/php]
    改行を取り除いています。

    [php]
    $description = mb_substr($description, 0, 100). "…"; ?>
    [/php]
    この場合だと、文字列「$description」の最初から100文字目までを最後に「…」を付けて表示します。

    PRとかADとかも表示されるんですけど…

    外部のブログサービスのRSS Feedを読み込むとPRとかADとか広告も一緒に表示されてしまったりします。Amebaブログとか。
    「そんなのはいらん!」と仰る方は以下のコードを試してみてください。

    [php]
    <?php
    error_reporting(E_ERROR); //エラーレポートを表示しない
    require_once ‘magpie/rss_fetch.inc’;
    define(‘MAGPIE_OUTPUT_ENCODING’, ‘UTF-8’);
    $url = ‘RSS FeedのURL’; //RSS FeedのURL
    if($rss = fetch_rss($url)){ //RSS Feedがなければ終了
    $title = $rss->channel[‘title’];
    echo "<h2>$title</h2>\n";
    $rss->items = array_slice($rss->items, 0, 6); //RSS Feedの表示件数
    echo "<ul>\n";
    foreach ($rss->items as $item ) {
    $title = $item[title];
    $date = Date("Y.m.d",$item[date_timestamp]);
    $url = $item[link];
    if (strstr($item[link],"表示したいブログのURL") == false) { //特定のURL以外は表示しない
    echo "";
    }
    else {
    echo "<li>$date <a href=\"$url\">$title</a></li>\n";
    }
    };
    echo "</ul>";
    }
    ?>
    [/php]

    解説

    [php firstline=”9″]
    $rss->items = array_slice($rss->items, 0, 6);
    [/php]
    Amebaブログ場合だと5件に1件の割合で広告が入ってくるので5件表示させたい場合は6件分表示させときます。

    [php firstline=”15″]
    if (strstr($item[link],"表示したいブログのURL") == false) {
    [/php]
    ここに記入したURLのRSS Feedだけを表示します。

    関連サイト