当ブログは、現在Simplicity2というテーマを使わせていただいてます。このテーマには「ブログリンク」という機能が搭載されていますが、とある弱点があったので、勝手に対策してみました。
もくじ
ブログカード
Simplicity2に標準搭載されている機能のひとつで、URLをそのまま貼り付けると、自動的にサムネイル付きで格好良いカードのような見た目のリンクを作成してくれる機能です。
リンクさせたいページのURLを、コピペでそのまま貼るだけで自動的に作成してくれるのですから、とても便利な機能なのですが、ひとつ弱点がありました。
テーマを変えると当然機能しなくなり、ただのURLだけがぽつんと表示されるようになってしまうのです。
独自要素化
テーマの変更やサーバ移設などのときも、HTMLとCSSで独自要素化していれば、CSSの追加だけでカード化したデザインが復元できるので安心です。
デザインを変えたくなったときも、柔軟に対応できますね。
HTML要素
さすがにURLを貼り付けるだけでというのは無理ですが、なんとか簡単にリンク作成したいと思い、Google ChromeのエクステンションCreate Linkを利用して、自動生成できるようにしてみます。
Create Linkのオプション画面から新規テンプレートを作成します。
左下の「+」ボタンを押してテンプレートを追加。
「Name」の欄に任意の名前。今回は「リンクカード」という名称にしました。
「Format」の欄にテンプレート用のコードを入力します。
入力したコードがこちらです。
<div class="link-card"> <div class="link-card-thumbnail"> <a href="%url%" class="link-card-thumbnail-link" target="_blank"> <img class="link-card-thumb-image" src="https://capture.heartrails.com/120x120/shadow?%url%" alt="" /> </a> </div> <div class="link-card-content"> <div class="link-card-title"> <a href="%url%" target="_blank">%title%</a> </div> <div class="link-card-excerpt">%htmlEscapedText%</div> </div> <div class="link-card-footer"> <div class="link-card-hatebu"> <a href="https://b.hatena.ne.jp/entry/%url%" target="_blank"> <img src="https://b.hatena.ne.jp/entry/image/%url%" alt="" /> </a> </div> </div> </div>
当初は、HTMLだけで再現しようとしていましたが、断念しました。PCのみであれば再現出来ますが、スマホ画面などを考えると私には無理でした。
CSS要素
PCサイズからスマホサイズまでをカバーしようとすると、どうしてもCSSを使わないと再現できませんでした。
内容は、Simplicityとなるべく同じデザインを基準にしたかったので、あちらこちらに散らばっていたSimplicityのCSSから必要な部分を抜き出して、クラス名など一部手直しをして、なるべく最小限になるようにまとめたものです。
それでも結構長くなってしまいましたが、まとめたコードが以下です。
/************************************ リンクカードのスタイル ************************************/ .link-card{ margin: 20px; max-width:100%; width: calc(100% - 40px); position: relative; clear:both; min-height:145px; min-width: 300px; box-sizing: border-box; padding:12px; padding-bottom: 6px; border:1px solid #ddd; word-wrap: break-word; border-radius: 5px; } .link-card:after{ content: ""; clear: both; display: block; } .link-card-thumbnail{ float: left; } .link-card img.link-card-thumb-image{ border:0; width: 100px; height: 100px; object-fit: cover; display: block; margin-bottom: 10px; } .link-card-content{ margin-left:110px; line-height:120%; margin-bottom: 0.5em; } .link-card-title{ margin-bottom:5px; } .link-card-title a{ font-weight: bold; text-decoration: none; color: #111; } .link-card-excerpt{ color: #333; font-size: 0.9em; max-height: 80px; overflow: hidden; } .link-card-footer{ font-size: 0.7em; width: 100%; color:#777; clear:both; vertical-align: bottom; margin-left: -4px; } .link-card-hatebu{ float: left; margin-right: 7px; position: relative; bottom: -5px; } /*リンクカードのスタイル*/ @media screen and (max-width: 560px){ .article .link-card, .article .entry-content .hover-card{ width: 100%; } .link-card-content{ margin-left: 0; } .link-card-title a{ font-size: 14px; line-height: 120%; } .link-card-excerpt, .link-card-footer{ font-size: 11px; line-height: 120%; } #main .link-card, #main .hover-card{ margin-left: 0; margin-right: 0; width: 100%; } img.link-card-thumb-image{ width: 80px; height: 80px; } .link-card-content { margin-left: 90px; } }
WordPressの管理画面からテーマの編集かCSS編集で、スタイルシート(style.css)へ追加してください。
リンクカードの作成
リンクを作成したいページを開きます。
サムネ・タイトルは自動取得します。説明文の部分は、選択式にしました。
まず、説明文として使いたい箇所をコピーします。
つぎにCreate Linkから、登録したテンプレート「リンクカード」をクリックすると、選択した部分が説明文として入力された状態で、リンク用HTMLがクリップボードに生成されます。
選択状態のままだと、何故かタイトルまで説明文になってしまいます。
まとめ
もともとSimplicityに搭載されている機能であるブログカードですが、テーマを変更したらただのURLに戻ってしまうという部分がきになって、URLを貼るだけという使い方に少し不安を覚えてしまったので、作ってみました。
コード化しておくと、いつどんなテーマに切り替えても使えるという安心感があって、気兼ねなく使えます。
よく調べてみると、WordPressのプラグインだけでも、カード化できるものがあるみたいですね。