Newpost Catch:フックを使ってタイトルの前に「New」マークを入れる方法

最近お問い合わせをいただきまして、WordPress.org 公式ディレクトリで配布している Newpost Catch プラグインのバージョン 1.3.9 をリリースしました。

この 1.3.9 から、投稿一覧のタイトルまわりを柔軟にカスタマイズできるよう、フィルターを追加しました。

例えば「投稿のタイトルの前に New マークを入れたい」という場合は、以下のコードのように書けばできます。

// New マーク表示
function npc_custom_title( $title, $post_id ){
 $current_time = current_time( 'timestamp' ); // 現在時刻
 $timestamp = get_post_time( 'U', true, $post_id ); // 投稿の時刻
 $new_mark = $current_time - $timestamp; //時刻の差分
 $date_limit = 60 * 60 * 24 * 10; // 10日間
 if( $date_limit > $new_mark ){
  $title = '<span class="new-mark">New</span>' . $title;
 }
 return $title;
}

add_filter( 'npc_post_title', 'npc_custom_title', 10, 2 );
add_filter( 'npc_sc_post_title', 'npc_custom_title', 10, 2 );

やっていること

上のコードでは、タイトル周りの出力を変更するフィルター「npc_post_title」「npc_sc_post_title」を使って、現在の時刻から 10 日前までの投稿があれば New マークをつけるよう、フックさせています。

「npc_sc_post_title」は、ショートコードを使って投稿一覧を表示したときのタイトルまわりを変更できるフィルターです。

ウィジェット、ショートコード、どちらも同じ処理を加えたい場合は、上のコードのように 2 つ指定すれば OK です。

コードは一例なので、タイトルまわりの html をまるっとオリジナルなものにすることもできます。お好みでカスタマイズください。

著者:bouya Imamura