ブログ記事の印刷用スタイルを作る方法
WordPressで記事を印刷するとき、画面表示用のCSSがそのまま適用されてしまい、不要な要素(サイドバーやフッターなど)が印刷されてしまうことがあります。そこで、印刷用スタイル(print.css) を設定して、記事本文だけを綺麗に印刷できるようにする方法を解説します。
1 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' を指定することで、印刷時のみに適用される点です。
2 汎用CSS
/* -----------------------------
* 汎用 印刷スタイル
* ----------------------------- */
@media print {
/* 不要な要素を非表示 */
header, /* HTML標準のヘッダー */
footer, /* HTML標準のフッター */
nav, /* HTML標準のナビゲーション */
.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; /* 横幅を100%に */
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) ")"; /* リンクの後にURLを表示 */
font-size: 12pt; /* 少し小さめの文字 */
}
/* ボタンやフォームは非表示 */
button, /* ボタン */
input, /* 入力欄 */
textarea, /* テキストエリア */
select { /* セレクトボックス */
display: none !important; /* 印刷時に不要なので非表示 */
}
/* 画像は印刷可だが幅調整 */
img {
max-width: 100% !important; /* 横幅を本文に合わせる */
height: auto !important; /* アスペクト比を維持 */
}
}
3 テーマ別サンプルCSS
3.1 Lightning用
Lightning テーマではサイドバーやフッターを非表示にして、記事本文だけを印刷します。
/* -----------------------------
* Lightning用 印刷スタイル
* ----------------------------- */
@media print {
/* ヘッダー内の不要要素を非表示 */
.site-header .global-nav, /* グローバルナビメニュー */
.site-header .breadcrumbs { /* パンくずリスト */
display: none !important; /* 印刷時は非表示 */
}
/* フッターやサイドバー、広告エリアを非表示 */
footer, /* HTML標準のフッター */
.site-footer, /* テーマ共通のフッター */
.sidebar, /* サイドバー */
.ad-area { /* 広告エリア */
display: none !important; /* 印刷時は非表示 */
}
/* 記事本文は全幅に表示 */
.site-content { /* メインコンテンツ領域 */
width: 100% !important; /* 横幅を100%に */
}
}
3.2 Cocoon用
Cocoon テーマでは「目次」や「広告」なども非表示にすると見やすくなります。
/* -----------------------------
* Cocoon用 印刷スタイル
* ----------------------------- */
@media print {
/* ヘッダー、フッター、サイドバー、広告エリア、目次を非表示 */
header, /* HTML標準のヘッダー */
footer, /* HTML標準のフッター */
.sidebar, /* サイドバー */
.ad-area, /* 広告エリア */
.toc { /* 目次 */
display: none !important; /* 印刷時は非表示 */
}
/* 記事本文のフォントサイズと行間を調整 */
.entry-content { /* 記事本文領域 */
font-size: 14pt; /* フォントサイズを印刷向けに */
line-height: 1.6; /* 行間を少し広く */
}
}
4 まとめ
印刷用スタイルを設定することで、記事だけを綺麗に印刷できるようになります。


