wordpressを使い始めて、デフォルト機能にありそうなのに無くて、驚いた機能が「new」マークの表示でした。新しい記事のタイトル横に「new」とか「up」とか表示して、一定期間が経過したら消える、というような機能を期待していたのですが・・・
どうやら、ウィジェットにも無いらしく。。。
#ひょっとすると、ブログツールやCMSツールに対する、私の思想が間違っているのかも。。。新規記事は常にトップに表示するとか、それで十分といわれれば、それまでだし・・・
今回、どうしても、サイドバーの静的ページ(と言っていいのか分からないのですが、「投稿」じゃなくて、「ページ」という意味で使ってます。)リストに、upマークを表示したくなったので、ついにチャレンジしてみました。
最初に参考にさせていただいたのが、こちら↓の記事などで紹介されている、テンプレートのみに記述し、phpの世界で解決する方式。
私が表示したいのは、デフォルトウィジェットの「ページ」のリスト中だったので、default-widgets.phpに書けばよいのかなーと思ったのですが、
静的ページリストの生成が「wp_list_pages()」という関数で行われており、私の力不足で、上手くパラメータを渡してあげられませんでした(--;
(「’link_after’」というパラメータがあるようなので、やろうと思えば、出来ると思います。。。)
次に、こちら↓の方式にチャレンジ。
一定時間で自動的に消える New マークを付ける JavaScript の jQuery 版 – かたつむりくんのWWW
しばらくぶりにjavascriptを触ったので、またまたスッカリ忘れ(--;思い出すのに時間がかかりましたが、こちらの記事では一行ずつ丁寧に説明してあり、無事実現することが出来ました。
自分なりに変えたところは、「wordpressで使う場合」のところで、テンプレートタグ「the_modified_time」を使用しているのですが、
私がコードを追加した「classes.php」のpage_itemクラスを生成しているところでは、$page->post_modifiedとしたほうが更新日付を取りやすかったので、「the_modified_time」は使いませんでした。
(the_modified_timeだと、メインエリア内の最終記事の更新日時を取ってしまって、直せなかった・・・)
また、別館ブログのほうでは、jQueryの.prependを使用して、小細工をし、とあるウィジェットタイトルの前に、固定的に「New」マークを表示するソースも追加してみました。
お勉強させていただいたサイト↓
第15回 HTMLの挿入 jQueryによるJavaScript入門
って、今回かなりいい加減な説明です。備忘メモレベルなのでお許しを・・・・
#そもそも、/wp-includes内のclasses.phpを修正しちゃったので・・・あんまりよろしくないことは確かです・・・
#一応、私のブログでは、他に影響なさそうだったので、踏み込んだのですが。
※本記事を書いた時点のバージョンは、WordPress 2.8.6です!最新版をお使いの方は、ソース名等違ってくるかもしれません。