読書実況BROS.

超個性派書評ブログ <読書 × 実況 = 書評 + アフターケア>

読書実況BROS.

カテゴリーによって切り替わる『この記事を書いた人』の作成法(はてなブログ)

f:id:nobi2saku:20190131192048j:plain

このブログは弟と運営しているので、記事を書いた人をどうしても表示させたいと思っていました。

しかし、WordPressではそういうプラグインがあるみたいなのですが、はてなブログではなかなか自動で切り替えてくれるコードがなかったんですよ。

なので、超絶初心者の僕が他サイト様のコードを組み合わせてゴリ押しで作ってみました。

「この記事を書いた人」以外にも、カテゴリーによって「記事上」や「記事下」に任意の記述を表示できるので便利なのではと思います。

まずは完成例

「のび作」をカテゴリーに設定した記事は、記事下にこのように表示されます。

f:id:nobi2saku:20190131181145p:plain

弟が投稿した、「味付け海苔」をカテゴリー設定した記事はこうなります。

f:id:nobi2saku:20190131182216p:plain

「デザイン設定 - カスタマイズ - デザインCSS」に貼り付けるコード

こっちはコピペでOK。

/*この記事を書いた人*/
.authorb {
    margin: 2em 0;
    background: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22);
    overflow: auto
}
.authorb .author-name {
    font-size: 1.3em;
    padding: 4px;
    text-align: left;
    background: #5D5D5D !important;
    color: #fff;
    font-weight: bold !important;

}
.authorb p {
    padding: 3px 9px;
    margin: 0;
    padding-top:5px !important;
}
.authorb .http-image{
border-radius:15% !important;
padding-top:5px;
}
.authorb .authorimg{
background-size:cover;
padding-top:5px;
}

@media screen and (max-width: 500px) {
.authorb p {
font-size:0.85em !important ;
}
}

@media screen and (min-width: 501px) {
.authorb p {
font-size:1.0em;
}
}

/* 読者ボタン */
.subscribe-button {
  margin-top: 0;
  margin-bottom: 20px;
  text-align: center;
}
.subscribe-button-inner a {
  position: relative;
  display: block;
  top: 0;
  width: 300px;
  height: 46px;
  margin: 0 auto;
  line-height: 46px;
  border-radius: 4px;
  background-color: #5D5D5D;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  vertical-align: middle;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  text-decoration: none;
  transition: all .3s;
}
.subscribe-button-inner a:hover {
  top: 3px;
  box-shadow: none;
}

「デザイン設定 - カスタマイズ - 記事 - 記事下」に貼り付けるコード

こちらは何箇所か直す必要があります。

<script>
showHTMLByCategoryWord1='1人目の名前';
showHTMLByCategoryWord2='2人目の名前';
var pageTags=document.getElementsByTagName('meta');
function adsFilter(){
for(var i=0;i<pageTags.length;i++){
if( ('article:tag'==pageTags[i].getAttribute('property')) && (showHTMLByCategoryWord1 == pageTags[i].getAttribute('content') ) ){
document.write('<div class="authorb">')
document.write('<div class="author-name">  <i class="fas fa-user-edit"></i><b> ABOUT<span style="font-size:0.8em;"> - この記事を書いた人 -</span></b></div>')
document.write('<div style="float: left; margin-left: 1px;">');
document.write('<p><a href="h1人目の画像" class="http-image" target="_blank"><img class="http-image" src="1人目の画像" alt="1人目の画像" width="100" /></a></p>')
document.write('</div>')
document.write('<div class="authorcontent">')
document.write('<p><b><span style="color: #5f91e0; font-size: 1.5em !important;">1人目の名前<span style="font-size:0.6em;">(id:nobi2saku)</span></span></b></p>')
document.write('<p>自己紹介</p>')
document.write('<p>自己紹介</p>')
document.write('<div class="subscribe-button">')
document.write('<div class="subscribe-button-inner">')
document.write('<a href="https://blog.hatena.ne.jp/nobi2saku/mokuji.hatenablog.com/subscribe"><i class="blogicon-hatenablog lg"></i> 読者になる</a>')
document.write('</div>')
document.write('</div>')
document.write('</div>')
document.write('</div>')
break;
}else if( ('article:tag'==pageTags[i].getAttribute('property')) && (showHTMLByCategoryWord2 == pageTags[i].getAttribute('content') ) ){
document.write('<div class="authorb">')
document.write('<div class="author-name"><i class="fas fa-user-edit"></i><b> ABOUT<span style="font-size:0.8em;"> - この記事を書いた人 -</span></b></div>')
document.write('<div style="float: left; margin-left: 1px;">');
document.write('<p><a href="2人目の画像" class="http-image" target="_blank"><img class="http-image" src="2人目の画像" alt="2人目の画像" width="100" /></a></p>')
document.write('</div>')
document.write('<div class="authorcontent">')
document.write('<p><b><span style="color: #5f91e0; font-size: 1.5em !important;">2人目の名前<span style="font-size:0.6em;">(id:nobi2saku)</span></span></b></p>')
document.write('<p>自己紹介</p>')
document.write('<p>自己紹介</p>')
document.write('<div class="subscribe-button">')
document.write('<div class="subscribe-button-inner">')
document.write('<a href="https://blog.hatena.ne.jp/ご自身のはてなid/サイトのurl/subscribe"><i class="blogicon-hatenablog lg"></i> 読者になる</a>')
document.write('</div>')
document.write('</div>')
document.write('</div>')
document.write('</div>')
break;
}
}
}
adsFilter();
</script>

名前

「1人目の名前」、「2人目の名前」の箇所をご自身のお名前に。

プロフィール画像

「1人目の画像」、「2人目の画像」に、「はてなフォトライフ」に画像をアップロードし、画像urlをコピペしていきます。

読者になるボタン

「ご自身のはてなid」と、「サイトのurl」を書き換えます。urlはhttps://以降でOK。独自ドメインにされているかたは、旧urlのものを使うらしいです。

記事にカテゴリーを追加

あとは普通に記事に著者のカテゴリーを設定していけばいいだけ。サイドバーに著者のカテゴリーを表示させたくない場合は、「デザイン設定 - カスタマイズ - サイドバー - カテゴリー - 編集」から「並び替え順」をカスタムにして調整してください。

完成!!

できましたでしょうか?

ある程度の知識がある方には、きったないコードでお目汚ししたことをお詫び申し上げます。

本当はカテゴリーなんて設定しなくても、記事の作成者を自動で判別して表示してくれるようにしたかったのですが、どうもうまくいきませんでした。詳しい方おられましたらご教授くだされば幸いです。

まあ、作成者と違ってカテゴリーは後から変えられるので、デメリットばかりではないです。

参考にした本↓

HTML&CSSとWebデザインが 1冊できちんと身につく本

HTML&CSSとWebデザインが 1冊できちんと身につく本

HTML5&CSS3デザインブック (ステップバイステップ形式でマスターできる)

HTML5&CSS3デザインブック (ステップバイステップ形式でマスターできる)

どこを書き換えたらどうなるのかなーくらいがわかるようになります。

以下、参考にしたサイト様です↓

skyfish25.hatenablog.com

www.chibikujira.com

このお二方の記事がなかったら絶対に作れませんでした。感謝してもしきれません!!

できない方はお気軽にコメントやツイッターでお声掛けください。(私に対処できるか分かりませんが 笑)