【WordPress授業七日目】オリジナルテーマ4
オリジナルテーマ作成
昨日の内容
条件分岐・各テンプレート別の対応
013:ページごとのタイトルタグを出力 | JOBTECH.JP
014:投稿詳細用テンプレート追加 | JOBTECH.JP
ページネーション
015:一覧表示テンプレートにページネーションを追加 | JOBTECH.JP
投稿詳細専用テンプレート追加
016:投稿詳細用テンプレート追加 | JOBTECH.JP
-----------------------------------昨日はここまで-------------------------------------------
今日からの内容
017:投稿詳細に前後記事リンクを表示 | JOBTECH.JP
アーカイブ専用テンプレート追加
019:アーカイブ一覧表示用テンプレート追加 | JOBTECH.JP
固定ページ専用テンプレート追加
020:固定ページ表示用テンプレート追加 | JOBTECH.JP
021:固定ページ表示用カスタムテンプレート追加 | JOBTECH.JP
●前後記事リンクを表示
デザインを考慮してブロックで囲んでいる
<div class="Single__footer">
<div class="Single__next">
<?php
if (get_previous_post()) {
第1引数:同じカテゴリに限定するか
初期値:false(限定しない)
true(限定する)
next_post_linkの第3引数と同じ設定にする
第2引数:除外する投稿ID
next_post_linkの第4引数と同じ設定にする
第3引数:タクソノミーの選択
初期値:'category'
next_post_linkの第5引数と同じ設定にする
previous_post_link();
初期出力:次の投稿タイトルリンク >>
◇ループ内で呼び出す関数
第1引数:リンク文字列の書式 例) '← %link'
%link部分がリンク文字列になる
%linkは必ず記述
第2引数:リンク文字列
初期値:%title(前の投稿タイトル)
第3引数:同じタクソノミーへの限定
初期値:false(限定しない)
第4引数:除外する投稿を指定
文字列指定:投稿IDをカンマ区切り
例)'1,3.5'
配列指定:[1,3,5]
第5引数:タクソノミーの選択
第3引数true時のみ指定可能
初期値:'category'
例)'tag'
} else {
echo '前の記事なし';
}
?>
</div>
<div class="Single__prev">
<?php
if (get_next_post()) {
next_post_link();
} else {
echo '次の記事なし';
}
?>
</div>
</div>
■ セキュリティ対策(XSS対策)
内容:HTMLタグを無効化して対応
echoしているところでは基本必ず使う
※問題発生時は外すことを検討
- esc_html関数
- esc_attr関数
内部でhtmlspecialchars関数を呼び出している
HTMLタグやクォートを実態参照に変換
1.HTMLタグ内での出力
2.HTML属性内での出力 - esc_url関数
URLに適切でない文字を除去
「&」「'」をエンコードする
3.リンクのhref属性内のURL出力
外部ファイル取得時のURL出力 - wp_kses_post関数
悪用される恐れのあるタグや属性のみ除去する
例)scriptタグ,onclick等のJS用属性
4.タグ込みの文字列を出力
「echo」があるときは無心にこの4つのどれかかける