WordPressのSimplePieオブジェクトを使ってアメブロなど(っていうかほとんどアメブロ)の外部RSSのデータを表示するとき。
「PR:」からはじまる広告をはじく、のをショートコードにしたもの。
まだ不完全ですがメモ程度に。
functions.phpに以下を追加。
if ( !function_exists( "my_rss" ) ) { function my_rss( $atts ) { extract( shortcode_atts( array( 'rss' => '', 'nom' => '5', ),$atts ) ); $feed = fetch_feed( $rss ); $str = ''; $blog_title = $feed->get_title(); $str .= '<ul class="my_rss"> '; foreach ( $feed->get_items(0,$nom) as $key => $item ) { $entry_title=$item->get_title(); if (!preg_match("/^PR:/", $entry_title)){ //↑ここで「PR:」をはじいている $str.= '<li><a href="' . $item->get_permalink() . '">' . $entry_title . '</a>'; $str.= ' <small>' . $item->get_date( '(n/j)' ) . '</small></li>'; //このあたりはお好みで } } $str.=' </ul> '; return $str; } } add_shortcode( 'myrss','my_rss' );
これで
[myrss rss=RSSのURL nom=投稿数(デフォルトで5)]
などとする。
ただこのままだと「PR:」があるとそのぶん表示数が減ってしまいますね。
ところでショートコードをウィジェットで使うときは functions.phpに
add_filter( 'widget_text','do_shortcode' );
を追加すれば出来るんですね。