Home > Website > 最近の投稿(拡張版)widget

最近の投稿(拡張版)widget

NRE
最近の投稿(拡張版)widget

サイドバーの「最近の投稿」一覧で、ここ最近の記事に「New!」マークを付けたいと思ったのですが、それらしいプラグインもWidgetも見つからなかったので、作ってみました。

  • 「ここ最近」を何日間にするか設定可能。
  • 「New!」マークをxhtmlタグで設定可能。
  • マークの位置を、タイトルの前か後か選択可能。
  • 日付も入る。(オフには出来ないが、同一投稿日なら省略可)

ダウンロード:nosaku-recent_entries0.2.lzh (DL数:215)

オリジナルの、wp-includes/default-widgets.phpからソースを引っぺがして改造しました。

さらに参考になったのがこちら。

Wordpresで最新記事にNEWマークを表示する
WordPress サイドバーに日付の付いた最新の記事欄の設置方法

NRE02
設定画面

インストールはプラグインと同じです。
解凍した中身 nosaku-recent_entries.php を pluginフォルダに入れて、プラグインの管理画面から有効にすると、ウィジェット管理画面で、追加、設定が出来ます。

デフォルトの設定では、ここ3日間の記事のタイトル先頭に、下記のタグで、New!マークが付きます。

<span class="NREW-NewEntry"><abbr title="ここ3日以内の新着記事">New!</abbr></span>

gifでNew!マーク作るのが面倒だったので、テキストで書いてみたのですが、「New! これこれの記事」ってアクセシビリティ的にどうよ?と疑念が沸いたので、‹abbr›を付けてみたのですが、これはこれでマークアップとして正しいのか?

ってことで、ウィジェットの編集で、‹img›タグなどでのマークアップを設定出来るようにしました。
入力箇所は二つあって、タイトルの前につける欄、後に付ける欄、どちらにも入れられます。

また、日付を表示するのに、

  • the_date() 1ページに同一投稿日の記事があれば、その最初の記事にのみ表示。
  • get_the_time() 全ての記事に投稿日を表示

の、どちらの関数を使うか迷ったので、オプションで選択できるようにしました。

CSS の classは、日付がNREW-Date。
New!マークが(デフォルトでは)NREW-NewEntryです。

span.NREW-Date{
	font-size: 95%;
	color: #797979;
}
span.NREW-NewEntry{
	font-size: 95%;
	color: white;
	background-color: #8080FF;
}

って感じにやってます。

phpなんてろくに判ってないのに書いてるので不具合あるかもしれませんが、widgetの作り方はなんとなく判ってきたような。

オリジナルのソースで良く判らないのが、wp_cache_~関連の処理。オブジェクトキャッシュ?使い方や作用がサッパリチンプンカンプン。機能してるのかな?
あと、$this->alt_option_name ってなんだ?どこに使われてるの?

コメント:0

コメント投稿欄
お名前を記憶しましょうか?
:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Trackbacks:0

Trackback URL for this entry
http://nosaku.net/archives/1333/trackback
Listed below are links to weblogs that reference
最近の投稿(拡張版)widget from 写真をめざせ!(略して写め)

Home > Website > 最近の投稿(拡張版)widget

Calendar
« 2010 年 3月 »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
アーカイブ
メタ情報
RSS Feed
これ!おすすめ
Image of ひらめきを計画的に生み出す デザイン思考の仕事術
QR Barcode
QR Code for 最近の投稿(拡張版)widget
Counter

53529 Visitors

Return to page top