ブログ記事の印刷用スタイルを作る方法
WordPressで記事を印刷するとき、画面表示用のCSSがそのまま適用されてしまい、不要な要素(サイドバーやフッターなど)が印刷されてしまうことがあります。そこで、印刷用スタイル(print.css) を設定して、記事本文だけを綺麗に印刷できるようにする方法を解説します。
functions.php に印刷用CSSを読み込む
まずは印刷用CSSファイルを読み込むコードを functions.php
に追加します。さらに便利にするため、記事ページに「印刷ボタン」を追加して、ワンクリックで印刷できるようにします。
// 印刷用CSSの読み込み
function my_print_styles() {
wp_enqueue_style(
'print-style',
get_stylesheet_directory_uri() . '/print.css',
array(),
'1.0',
'print'
);
}
add_action('wp_enqueue_scripts', 'my_print_styles');
// 印刷ボタンを記事の最後に追加
function add_print_button($content) {
if (is_single()) {
$content .= '<div class="print-button">
<button onclick="window.print()">印刷する</button>
</div>';
}
return $content;
}
add_filter('the_content', 'add_print_button');
補足:
ポイントは最後の引数に
ポイントは最後の引数に
'print'
を指定することで、印刷時のみに適用される点です。
汎用CSS
/* 汎用 印刷スタイル */
@media print {
/* 不要な要素を非表示 */
header,
footer,
nav,
.site-header,
.site-footer,
.sidebar,
.widget,
.global-nav,
.navigation,
.breadcrumbs,
.ad,
.ads,
.ad-area,
.toc,
.comments-area,
.comment-form,
.related-posts,
.author-box,
.pagination {
display: none !important;
}
/* 記事本文を全幅に */
.site-content,
.entry-content,
.post-content,
.content-area {
width: 100% !important;
margin: 0 !important;
padding: 0 10px !important;
}
/* フォント調整 */
body {
font-size: 14pt !important;
line-height: 1.6 !important;
color: #000 !important;
background: #fff !important;
}
/* リンクはURLを表示 */
a::after {
content: " (" attr(href) ")";
font-size: 12pt;
}
/* ボタンやフォームは非表示 */
button,
input,
textarea,
select {
display: none !important;
}
/* 画像は印刷可だが幅調整 */
img {
max-width: 100% !important;
height: auto !important;
}
}
テーマ別サンプルCSS
Lightning用
Lightning テーマではサイドバーやフッターを非表示にして、記事本文だけを印刷します。
/* Lightning用 印刷スタイル */
@media print {
/* header は消さず、header 内の不要要素だけ非表示 */
.site-header .global-nav,
.site-header .breadcrumbs {
display: none !important;
}
footer, .site-footer, .sidebar, .ad-area {
display: none !important;
}
.site-content {
width: 100% !important;
}
}
Cocoon用
Cocoon テーマでは「目次」や「広告」なども非表示にすると見やすくなります。
/* Cocoon用 印刷スタイル */
@media print {
header, footer, .sidebar, .ad-area, .toc {
display: none !important;
}
.entry-content {
font-size: 14pt;
line-height: 1.6;
}
}
まとめ
印刷用スタイルを設定することで、記事だけを綺麗に印刷できるようになります。