Google Feed API が廃止になったので件数を指定したリスト表示を代替え案での覚え書き

今までも何度か表示されないことがあったけど、微妙に動いていたGoogle Feed APIがとうとうエラーで表示されなくなり、、
幾つかのクライアントのFeed表示をどうしようかと調べていた中で使えそうなライブラリがあったのでそっちで対応。

PHPが動けばこれでいけそうです。

» ダウンロードするライブラリはこれ。feed.php

で、一つphpを用意(get-feed.phpという名前とかにして。)し、中身は下記をペースト。
取得するfeedのURL、件数を指定。
feed.phpの場所は同階層じゃない場合は階層も指定。

<?php
 
	// ライブラリの読み込み
	require_once "feed.php" ;
 
	// 取得するフィードのURLを指定(アメブロだとこんな感じ)
	$url = "http://feedblog.ameba.jp/rss/ameblo/アメブロID/rss20.xml" ;
 
	// インスタンスの作成
	$feed = new Feed ;
 
	// RSSを読み込む
	$rss = $feed->loadRss( $url ) ;
 
	// HTML表示用
	$html = '' ;
 
	$MAX_feed = 10;// 表示させる件数
	$feed_count = 0; $feed = new Feed ; $rss = $feed->loadRss( $url ) ;
 
 
	foreach( $rss->item as $item ){
		if ($feed_count >= $MAX_feed) { break; }
		// 各エントリーの処理
		$feed_count++;
 
		$title = $item->title ;	// タイトル
		$link = $item->link ;	// リンク
		$description = $item->description ;	// 詳細
 
 
		// 日付の取得(UNIX TIMESTAMP)
		foreach( array( "pubDate" , "date_timestamp" , "dc:date" , "published" , "issued" ) as $time )
		{
			if( isset( $item->{ $time } ) && !empty( $item->{ $time } ) )
			{
				$timestamp = ( is_int( $item->{ $time } ) ) ? $item->{ $time } : strtotime( $item->{ $time } ) ;
				break ;
			}
		}
 
 
		// 仮に日付が取得できなかったら現在時刻を表示
		if( !isset( $timestamp ) )
		{
			$timestamp = time() ;
		}
 
		// 表示
		$html .= '<dt>'.date( "Y年m月d日" , $timestamp ) .'</dt><dd><a href="' . $link . '">' . $title . '</a></dd>' ;
	}
?>
 
 
<?php echo $html ?>

後は読み込みたいページのhtmlの記述。

まず、ヘッダでjqueryを読み込む。既に別のライブラリで使ってる場合は不要かも。
ただ、バージョンによってコンフリクトするので、読み込み順、バージョンは注意。

ライブラリの読みこみ。

<!-- rss -->
<script type="text/javascript">
;(function($){
$(function(){
  $.get('get-feed.php',function(data){
    $('#feed').html(data);
  })
})
})(jQuery);
</script>

あとは、bodyの中で

<div id="feed"></div>

で読み込ませればOK。
表示スタイルはget-feed.phpの表示部分で変更すればスタイル変更ができます(^^)

表示件数を指定する部分を変更してますが、ここのブログを参考にさせていただきました。

» PHPでRSSやAtomのフィードを取得する方法
» Google Feed API」の代替として「rss-php」でRSSやAtomフィードを取得・表示する

休日ランチ

IMG_3793
休日はできるだけお友達がいる代々木のドッグランに。

充実して遊んだ後は、永田町のAnchor Pointで、オサレなランチを寒さに震えながらいただきました。
もうね、寒いから。テラスはギブです。

Katieは悠々です。ランチ持って出ていなかったから、慌ててコンビニの小型犬用のオヤツでしのぎました。
だいぶ大人しく待っていられるようになったもんね。1匹だけなら。。

朝のマイナスイオン

IMG_3733
チビの学校が振替休日でお休みだったので、ケイを連れて平日の代々木ラン。
朝8時過ぎの代々木公園は静かで、お友達ワンばっかりで、
週末とはまた違って、良い一日の始まりになりました。

仕事がバタバタじゃない日はできるだけ行こうかな。

毎日があっという間に過ぎてゆく。気がついたら秋も終わってた。

IMG_3632

夏には足の靭帯を切って、思うように歩けなくなり、、
秋のイベントのサイト構築と、その他の仕事でバタバタしながらも、週末はできるだけチビの夏休み&ケイの遊びに出掛け、

秋かな~と思ったのも束の間、

気づいたら半袖だけで過ごせない季節になっちゃいました。

去年から入部したPTAバレーでは高身長がゆえに、前衛に抜擢して頂き、、
何とか靭帯もくっついてブロックにジャンプできるまでに復活。

毎日ケイをお散歩に連れて行ってあげたい!というモチベーションが、良いリハビリになったみたいです。

なんだか今年はケガの多い、体調不良の多い季節を過ごしていました。

それでも、少し仕事が落ち着きはじめ、今後に向けたコンテンツのテストやら、溜まった請求書起こしなど。

そんな毎日で、チビは10才、ケイは無事に2才になりました。
塾やおけいこで毎日忙しくしているけど、沢山お手伝いをしてくれるチビ、まだまだハイパーで目が離せないけど、穏やかな性格でどんな犬とも仲良く出来る、大きな口してるけど決して歯を当てることもなく、素直に育っているケイ。

こういう日々が、きっと後からキラキラした思い出になるのだろうね。

IMG_3611

お散歩の後のりんごがだいすきです。

IMG_3158

ベランダで昼寝をするのもだいすきです。

プラグインを使わないでフィルター、ソート機能をつける覚え書き。[MixltUp]

投稿内容の一覧をタイル状に表示して、フィルターやソートをさせたい時はプラグインを使うことも多いけど、jQueryをその分重複して読み込むことになってしまったり、そのせいでスライドショーとか他のライブラリが動かなくなることが多いので、シンプルに機能をつけたかったので、試してみました。
使うライブラリは
MixltUp
というもの。
サイトにソートとフィルターのデモが出ています。

で、これを実際にwordpressのコンテンツのソートに使う場合、

まずはヘッダに必要なものを読み込ませます。
header.php

<?php wp_head(); ?>

の後に記述したら、案の定コンフリクトを起こしたので、前に記述。

<!-- jQuery読み込み -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 
<!-- ソートスクリプト読み込み -->
<script src="http://cdn.jsdelivr.net/jquery.mixitup/latest/jquery.mixitup.min.js"></script>
 
<!-- Javascript -->
<script type="text/javascript">
$(function(){
	// Instantiate MixItUp:
	$('#Container').mixItUp();
});
</script>

cssにはこれを記述。

#Container .mix{
	display: none;
}

後は必要な部分をマークアップするだけ。

フィルタするボタンの部分にそのカテゴリのクラス名を入れる。
このブログだと、

がループされるのでその中にあるクラスのカテゴリ名を指定。

↓フィルタ用のボタン
<div class="filter" data-filter="all">すべて表示</div>
<div class="filter" data-filter=".category-wordpress">カテゴリー(wordpress)</div>
<div class="filter" data-filter=".category-news">カテゴリー(news)</div>
 
↓コンテンツの中身
<div id="Container">
	<!--ここからがループ-->
	<article class="mix category-wordpres">カテゴリー(wordpress)</article>
	<article class="mix category-news">カテゴリー(news)</article>
	<article class="mix category-wordpres">カテゴリー(wordpress)</article>
	<article class="mix category-news">カテゴリー(news)</article>
	<!--//ここまでがループ-->
</div>

1つややこしかったのが、articleのclassに「mix」を足さなくちゃいけないけど、この部分のclassはpost_classで吐き出しているので、直接記述ができない。
そういう場合はその中に追加したいクラス名を入れればいいだけ。

↓これを
<article id="Container post-<?php the_ID(); ?>" <?php post_class(); ?>>
 
↓こう変更する
<article id="Container post-<?php the_ID(); ?>" <?php post_class('mix'); ?>>

これでバッチリフィルタ機能が付けられました。

固定ページ、単一記事で自動整形を無効にする の覚え書き

今まではプラグイン頼みでやっていたこの処理だけど、プラグインがコンフリクトを起こすことが増えたので、直接変更することに。
ただ、functions.php、page.php、single.phpのテンプレートを変更するので、テーマのアップデート時に上書きされちゃうと危ないので、やっぱりchild themeを使っているとき限定かな。

functions.phpは下記を追加

add_filter(‘the_content’, ‘wpautop_filter’, 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
 
$arr_types = array(‘page’); //自動整形を解除・無効にする投稿タイプを記述
$post_type = get_post_type( $post->ID );
if (in_array($post_type, $arr_types)) $remove_filter = true;
 
if ( $remove_filter ) {
remove_filter(‘the_content’, ‘wpautop’);
remove_filter(‘the_excerpt’, ‘wpautop’);
}
return $content;
 }
<?php remove_filter (‘the_content’, ‘wpautop’); ?> // <?php the_content(); ?>の前に入れる