WordPressのsingle.phpに複数テンプレートを設定させる

小説体裁のアンケートがどうしても気になったのと、縦書の『小説っぽさ』に心惹かれてしまい、どうにかできないかと格闘した結果、できました。

通常版(改行版)と字詰版の二つを別記事として用意しようかと思ったのですが、
誤字脱字があった時に二記事両方修正しなければならないのと、
どうやって見やすい目次を作ればいいのかで悩んでいたら、ありました。
ありがとうございます。

パラメータでシングルページのテンプレートを変更

これをfunction.phpに記述してsingle-A.phpとsingle-B.phpを作り、

<a href="<?php the_permalink(); ?>?type=A">パターンA</a>
<a href="<?php the_permalink(); ?>?type=B">パターンB</a>

とリンクさせると、同じ内容なのに違うデザインをあてられる事を知りました。

しかしこれではデザインを変えられるだけで本文自体は変えられないので、
むかしむかしあるところにおじいさんがいた。
おばあさんもいた。
「そして鬼もいるぞ。」
「わあ!鬼だ!」
〜

[sp]むかしむかしあるところにおじいさんがいた。[no]
おばあさんもいた。[br]
「そして鬼もいるぞ。」
「わあ![sp]鬼だ!」[br]

に変更します。
(複数)ファイルの(複数)置換にはTextSSが便利です。
function.phpに、
function single_A($text){
$replace = array(
'[sp]' => '',
'[no]' => '<br>',
'[br]' => '<br>',
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
function singleA(){
add_filter('the_content', 'single_A');
}
 
function single_B($text){
$replace = array(
'[sp]' => ' ',
'[no]' => '',
'[br]' => '<br>',
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
function singleB(){
add_filter('the_content', 'single_B');
}

と記述してsingle-A.php(とsingle-B.phpそれぞれ)の
<?php the_content('); ?>

<?php singleA(); ?>
<?php the_content('); ?>

に変えて、[sp][no][br]を改行タグにしたり存在しないものにしたりします。
ここでは[br]は使っていませんが、縦書版で使っています。


縦書版にはnehanを利用しました。
これは特殊だったのでfunction.phpではなくsingle-C.phpに直接
<?php
$data = get_the_content();
$data = str_replace('[sp]', ' ', $data);
$data = str_replace('[no]', '', $data);
$data = str_replace('[br]', '', $data);
echo $data;
?>

と記述しました。上の二つもfunction.phpではなく直接書いても動作するのですが、
ktaistyleの文字数表示が正しく動作しませんでした。


そんなこんなで頑張ったサイトはこちら。
小説サイト : 16869


02/08 人間の愚かさを教えてくれる『フランケンシュタインの誘惑』が好きすぎる

はじめてこのサイトに来た方への案内所はこちら

類似記事

Copy&Paste


本文のコピペやスクショはしないでください