たまには技術的なことも書きましょう。
当ブログでもお世話になっているプラグイン『WordPress Popular Posts』。
ときどき何かが起こったりしたものの、最近が問題なく、投稿の順位を集計してくれてます。
フッターにTOP5を表示して、右のスライダーには直近公開の人気投稿を表示してます。
要は、重宝しとるわけです。
ここで要望が出るわけ。
『順位を表示させたい!』
『他のサイトみたいにカッコよくアレンジしたい!』
で、ネットで調べて、CSS書いてみたんだけどうまくいかず。。
ちゃんと技術から調べたよ。
今回書いたCSSも載せとくよ。
備忘録ね。
WordPress Plpular Posts
人気の投稿を集計して、表示してくれるプラグイン。
当ブログでも実装済み。
フッターの表示を見ると分かるんだけど、順位の番号が表示できないんだ。
ウチの場合は、表示用のCSSを別のものにしちゃってるからなおさら話がややこしくて。。
別のページにショートコードで埋め込んだときに、やっぱり順位の番号はあった方が分かりやすいよね、って話になった。
ショートコードも別途書いときます。
[PS-Ad-AMP]
今回書いたCSS
「WordPress Plpular Posts」じゃなくても使える。
普通にイメージ付きのリストをHTMLで書く時にも大丈夫なように実験済み。
パラメーターは好みで調整してください。
ol.wnkhsCount { counter-reset: item; list-style-type: none!important; } ol.wnkhsCount li { position: relative; counter-increment: item; max-width: 400px; clear: both; } ol.wnkhsCount li:before { content: counter(item); display: block; position: absolute; left: 0; top: 0; /* ↓ 装飾 ↓ */ width: 1.5em; height: 1.5em; color: #ffffff; background-color: #6897e5; text-align: center; font-weight: bold; } ol.wnkhsCount li img { vertical-align: top; margin-bottom: 1.5em; margin-right: 0.5em; float: left; }
あちこちのサイトから拾ってきて、貼り合わせて、自分でアレンジ加えた結果、こうなった。
今回書いたショートコード
リファレンスから例を拾って書いた。
日本語はお好みで。サムネ幅とかクラス名も、状況に合わせて調整。
今回勉強した技術
お勉強したのは以下。
- CSSでのカウンター
- 「:before」という書き方
- ポジション
- ブロック表示
1. カウンター
上記のリストは<ol>~</ol>で、オプション指定なしで、デフォルトのカウントアップしてる。
けど、今回みたいに見出し数字だけ装飾するオプションはCSSにない。
だから、カウンターを使って値を書いて、それを装飾しようというわけ。
ulでもolでもいいんだけど、styleで見出し文字は消しとく必要あり。
基本の書き方は以下。
ol.wnkhsCount { counter-reset: item; list-style-type: none; } ol.wnkhsCount li { counter-increment: item; } ol.wnkhsCount li:before { content: counter(item); /* ↓ 装飾 ↓ */ }
『装飾』てとこに背景色とか文字色とか書けば、見出し文字列を自由にできる。
幅とかマージンとか指定しないと、単体要素ではまあまあ残念な感じw
見出し数字が消えないかも。「!important」を試してみて、だめならこれだけ直書きかな。
2. 「:before」という書き方
疑似的に、要素の前にCSSを書いたようなかたちにできる。
後ろに書くには「:after」。
クラス名などの要素をたくさん書く必要がないので、コードがすっきりするよね、という話。
今回も明示的に書けて分かりやすい!
3. ポジション
見出し文字を「position: absolute;」で書いてるんだけど、親要素を明示してあげないと大変なことになる。
今回ここでもけっこうハマった。。
「li」の方に『position: relative;』を書いておかなきゃいけなかったのね。
パクりコードにこれがなかったせいで、見出し文字がページの左上に集まっちゃったw
いや~、まいったまいったw
static以外の親要素に対するabsoluteなんだって。
4. ブロック表示
これまであんまり気にしてなかったんだけど、要素内にするか要素外にするか、みたいな感覚。
厳密には違うんだけど。
block指定すると、そこだけ切り出される。
今回はこの機能を使って、見出し数字部分をブロック化してる。
おかげで背景色とかとかの装飾が限定的に効く、と。
[PS-Ad-AMP]
実験状態
例の「:before」という書き方は、CSSをあらかじめ書いとく必要があって。
だからって、style.cssをいきなり編集するのはちょっと。。
いくら適当でも、他への影響が大きそうなことには慎重になるんだよ。
で、実験のために、HTML非推奨だけど、<body>~</body>部分に<style>~</style>を書いて、そこにCSSを書いた。
適用の優先順位が微妙に異なるとか、まあいろいろあるにしても、まずは実験!
別途調査の上、style.cssにも反映できるかな。
そんときはステージング環境で確認するのかな。
さいごに
まだまだやってみたいことはあるから、ちょっとずつ勉強して実装していこう!!
急がば回れなんだよ。
結局、ちゃんとお勉強したほうが早く実装できるってもんよ。
よろしければ、ライターのTwitter(@SubShine_wnkhs)をフォローしてやってください。
@SunShine_wnkhs
最新情報をお届けします!!
ご意見やご感想などお聞かせください! コメント機能です。