引用文として定義するには blockquote 要素を使用する。
blockquote 要素はブロックレベル要素だが、直接インライン要素をやテキストを含むことができないので、p 要素などの他のブロックレベル要素を含まなければならない。(HTML5ではブロックレベル要素とインライン要素の分類はない)
WordPress では、blockquote 要素を記述すると自動的に p 要素などで内容がマークアップされる。
<blockquote cite="http://example.com">
<blockquote cite="urn:isbn:0-xxxx-xxxx-x">
左の画像を blockquote 要素を囲む div 要素の背景画像に、右の画像を子要素である blockquote 要素の背景画像に指定して、引用文が2つの画像で囲まれるように CSS で設定する。
<div class="bq" cite="http://example.com"> <blockquote class="imgbq"> ここに引用文が入る </blockquote> </div>
それぞれの要素にクラスを指定して background プロパティで画像を呼び出し、繰り返しなしでそれぞれ左上、右下に指定する。
div.bq { margin: 10px; padding: 0; background: url(images/quote_begin-trans.png) no-repeat top left; } blockquote.imgbq { padding: 1.0em; font-size: 12px; font-size: 1.2rem; line-height: 1.2em; color: #333; background: url(images/quote_end-trans.png) no-repeat bottom right; border: 1px solid #CCC; }
毎回 div 要素と blockquote 要素にクラスを指定して記述するのが面倒なので、ショートコードにして[imgbq cite=”http//…” title=”test”]引用文[/imgbq]で呼び出せるようにするため、以下を functions.php に記述。
function imgbq_func($atts, $content = null) { extract(shortcode_atts(array( 'cite' => '', //cite 属性 'title' => '', //title 属性 'divclass' => 'bq', //クラスを指定しなければデフォルトのクラスを使用 'bqclass' => 'imgbq', ), $atts)); if(isset($content)) { $html = '<div class="'. esc_attr($divclass) . '">'; $html .= '<blockquote class="' . esc_attr($bqclass) . '" cite="'. esc_attr($cite). '" title="'. esc_attr($title). '"><p>'; $html .= $content.'</p></blockquote></div>'; return $html; }else{ return ''; } } add_shortcode('imgbq', 'imgbq_func');
以下を記述した場合の表示例(実際には”[ ” は半角で記述)
[imgbq cite=”http://wpdocs.sourceforge.jp/” title=”ショートコード API”]WordPress 2.5で新しく追加されたショートコード API機能は、コンテンツ記事投稿に用いるマクロコードの作成する機能を備えています。[/imgbq]
WordPress 2.5で新しく追加されたショートコード API機能は、コンテンツ記事投稿に用いるマクロコードの作成する機能を備えています。