サイドバーの「最近の投稿」一覧で、ここ最近の記事に「New!」マークを付けたいと思ったのですが、それらしいプラグインもWidgetも見つからなかったので、作ってみました。
- 「ここ最近」を何日間にするか設定可能。
- 「New!」マークをxhtmlタグで設定可能。
- マークの位置を、タイトルの前か後か選択可能。
- 日付も入る。(オフには出来ないが、同一投稿日なら省略可)
ダウンロード:nosaku-recent_entries0.2.lzh (DL数:[downloadcounter(nosaku-recent_entries0.2.lzh)])
オリジナルの、wp-includes/default-widgets.phpからソースを引っぺがして改造しました。
さらに参考になったのがこちら。
インストールはプラグインと同じです。
解凍した中身 nosaku-recent_entries.php を pluginフォルダに入れて、プラグインの管理画面から有効にすると、ウィジェット管理画面で、追加、設定が出来ます。
デフォルトの設定では、ここ3日間の記事のタイトル先頭に、下記のタグで、New!マークが付きます。
[sourcecode language=”xhtml” firstline=””]
<span class="NREW-NewEntry"><abbr title="ここ3日以内の新着記事">New!</abbr></span>
[/sourcecode]
gifでNew!マーク作るのが面倒だったので、テキストで書いてみたのですが、「New! これこれの記事」ってアクセシビリティ的にどうよ?と疑念が沸いたので、‹abbr›を付けてみたのですが、これはこれでマークアップとして正しいのか?
ってことで、ウィジェットの編集で、‹img›タグなどでのマークアップを設定出来るようにしました。
入力箇所は二つあって、タイトルの前につける欄、後に付ける欄、どちらにも入れられます。
また、日付を表示するのに、
- the_date() 1ページに同一投稿日の記事があれば、その最初の記事にのみ表示。
- get_the_time() 全ての記事に投稿日を表示
の、どちらの関数を使うか迷ったので、オプションで選択できるようにしました。
CSS の classは、日付がNREW-Date。
New!マークが(デフォルトでは)NREW-NewEntryです。
[sourcecode language=”css” firstline=””]
span.NREW-Date{
font-size: 95%;
color: #797979;
}
span.NREW-NewEntry{
font-size: 95%;
color: white;
background-color: #8080FF;
}
[/sourcecode]
って感じにやってます。
phpなんてろくに判ってないのに書いてるので不具合あるかもしれませんが、widgetの作り方はなんとなく判ってきたような。
オリジナルのソースで良く判らないのが、wp_cache_~関連の処理。オブジェクトキャッシュ?使い方や作用がサッパリチンプンカンプン。機能してるのかな?
あと、$this->alt_option_name ってなんだ?どこに使われてるの?
コメントを残す