WordPressの記事内に、良かれと思いバナーを置いてみても、記事の文字量に埋れてしまい意図した導線としての機能を果たさない場面があります。
そこで、バナーのサイズや色味を変更して目立たせることができますが、外部サイトのバナーの場合、バナー自体をいじることができないので、それ以外のデザインでみやすくする必要があります。
そこで、CSSでバナー周りのデザインを補完して目立たせることができるので、方法を知っておくと非常に便利です。
そこで今回は、ショートコードでバナーのデザインを補完するバナーブロックを表示させるスニペットについてご紹介します。
バナーブロックのデザインサンプル
このページのコピペでできるバナーブロックのサンプルです。
当サイトで利用しているWordPressテーマ SANGO のテイストに合わせ、かつ、ブロックの左右に余白ができないようCSSで調整しています。
CTAブロックとしても使えそうな感じです。
実装の手順概要
実装は、functions.phpにコードをコピペ → CSSをコピペ → 完成 の3つの手順で完了です。
.muumuu
の中に記述があるので書き換えれば色が変わります。 注意点
実装は上記の手順で実装可能ですが、functions.php
に間違った記述を行うと全ての画面表示が真っ白になったりするので注意しましょう。
コピペ用コード
以下がコピペ用のコードと、ショートコードの一式です。
functions.php
には画像のパスを記述する場所が2つ。CSSにはbefore
after
の擬似要素に1つパスをする箇所があるので、書き換えて利用ください。
コードを表示する
[banner]
/* バナーブロック */
function bannerFunc() {
return '<div class="muumuu">
<p class="muumuudes">詳細はこちらで見れます</p>
<div class="muuhref">
<!-- ここからバナー -->
<img src="" alt="">
<!-- ここまでバナー -->
</div>
<!--吹き出しはじまり-->
<div class="muumuufoot">
<div class="balloon5">
<div class="faceicon">
<img src="" alt="ここに顔アイコン">
</div>
<div class="chatting">
<div class="says">
<p>こんな感じで表示されます</p>
</div>
</div>
</div>
</div>
<!--吹き出し終わり-->
</div>';
}
add_shortcode('banner', 'bannerFunc');
/* バナーブロック */
.muumuu {
width: 100%;
display: block;
text-align: center;
position: relative;
background: #e1f3ff;
box-sizing: border-box;
padding-top: 20px;
margin: 20px 0;
}
.muumuu:before, .muumuu:after{
content: url(img/dotback.svg);
position: absolute;
width: 60px;
height: 60px;
z-index: 0;
opacity: 0.4;
}
.muumuu:before {
bottom: 15px;
left: 15px;
transform: rotate(
90deg
);
}
.muumuu:after {
top: 15px;
right: 15px;
transform: rotate(
270deg
);
}
p.muumuudes {
display: inline-block;
margin: 0 0 5px;
position: relative;
letter-spacing: 0.04em;
color:#6bb6ff;
font-weight: 600;
}
p.muumuudes:before, p.muumuudes:after {
display: inline-block;
position: absolute;
top: 50%;
width: 20px;
height: 3px;
border-radius: 3px;
background-color: #6bb6ff;
content: "";
}
p.muumuudes:before {
left: -30px;
-webkit-transform: rotate(
50deg
);
transform: rotate(
50deg
);
}
p.muumuudes:after {
right: -30px;
-webkit-transform: rotate(
-50deg
);
transform: rotate(
-50deg
);
}
.muuhref {
display:block;
padding-bottom:0;
}
.muumuu a img{
box-shadow: 0 1px 5px 0 rgb(0 0 0 / 25%);
transition: 0.2s ease-in-out;
z-index: 1;
position:relative;
}
.muumuu a img:hover {
box-shadow: 0 15px 30px -5px rgb(0 0 0 / 15%), 0 0 5px rgb(0 0 0 / 10%);
transform: translateY(-4px);
}
/* 吹き出し */
.muumuufoot {
display: block;
text-align: center;
position: relative;
padding: 20px 0 10px;
}
.balloon5 {
max-width: 310px;
margin: 5px 10px;
display: inline-block;
position: relative;
width: 100%;
}
.balloon5 .faceicon {
float: left;
margin-right: -90px;
width: 80px;
display: inline-block;
position: relative;
}
.balloon5 .faceicon img{
width: 100%;
height: auto;
border: solid 3px #6bb6ff;
border-radius: 50%;
}
.balloon5 .chatting {
width: 100%;
}
.says {
display: inline-block;
position: absolute;
margin: 0 0 0 15px;
padding: 10px 15px;
border-radius: 5px;
background: #6bb6ff;
width: 210px;
left: 65px;
text-align: left;
color: #FFF;
font-weight: 400;
top: 0;
line-height: 1.3em;
}
.says:after {
content: "";
display: inline-block;
position: absolute;
top: 24px;
left: -22px;
border: 10px solid transparent;
border-right: 12px solid #6bb6ff;
}
.says p {
margin: 0;
padding: 0;
}
@media screen and (min-width:1030px) {
/* 画面サイズが1030px以上はここを読み込む */
.muumuu {
width: calc(100% + 80px);
margin: 20px -40px;
}
}
@media screen and (min-width:481px) and ( max-width:1029px) {
/* 画面サイズが481pxから1029pxまではここを読み込む */
.muumuu {
width: calc(100% + 50px);
margin: 20px -25px;
}
}
@media screen and (max-width:480px) {
/* 画面サイズが480px以下はここを読み込む */
.muumuu {
width: calc(100% + 30px);
margin: 20px -15px;
}
}