日記風パーマリンクの実現
注記:本ページは書きかけです。
パーマリンク設定
投稿を日付別に管理しているかのように見せかけるパーマリンクの設定はこんな感じ。
/%year%/%monthnum%/%day%#post-%post_id%
この url は http://syunro.net/2006/01/23#456 という感じになり、記事IDをアンカータグとして扱うことで、いったん該当日のページを表示して該当記事IDに飛ぶようになる。
- 利点
- 日別はもちろん、シングルページを出そうとしても日別ページになるので、あたかも日記システム風になる。(利点なのか?)
- 問題点
- コメント関連を日別ページに表示していないとコメントできないしコメントが見えない。
同じく、more… 以降も読めないし、ページ分けもダメ。
コメントパーマリンクはスクリプトを改造しないと
http://syunro.net/2006/01/23#post-456#comments
とか
http://syunro.net/2006/01/23#post-456#comment-2
とかになってしまうので、phpスクリプトの改造が少々(下記参照)必要。
日別ページでコメント表示
Wordpress は標準ではシングルページでしかコメントを表示しないようになっている。
同じく more… とか設定してると、続きを読む手立てが無くなる。
これを、日別ページでも表示するようにテーマファイルの index.php の先頭くらいに
[code lang="xml"]
[/code]
とか入れておくと、この場合は日別アーカイブと月別アーカイブでは全文表示して、コメントも全部表示する。
*ちなみにウチのページでは、シングルページは前述のパーマリンク設定により日別になり、月別表示も1日表示にしているのでこういう設定にした。
コメントパーマリンク改造
記事IDをアンカーにしたために、コメントIDの飛び先を正常に解釈できなくなるので、下記のような小細工を行った。
- コメントテーマファイル
- テーマファイルの comments.php のコメントIDが入っている部分は通常
[code lang="xml"]
というふうにアンカーになっているけど、これを
[code lang="xml"]
[/code]
とする。
上記例は ‘#’ を ‘-’ に変更しただけ。
そのまま変えただけだと、日記url仕様でない(つまり普通のパーマリンク)「ページ」で問題が出るため、static でない場合のみ変更するよう条件分岐してる。
これで、テーマでコメント関連のアンカーを参照しているところを上記の表記に合わせて変更する。
[code lang="php"]
$location = ( empty($_POST['redirect_to']) ? get_permalink($comment_post_ID) : $_POST['redirect_to'] ) . '#comment-' . $comment_id;
?>
[/code]
これをテーマで指定したものに変更する。
上記の例ではこんな感じに ‘#comment-’ を ‘-comment-’ に変えるだけ。
[code lang="php"]
if ( $status->post_status == ’static’ ) :
$location = ( empty($_POST['redirect_to']) ? get_permalink($comment_post_ID) : $_POST['redirect_to'] ) . ‘#comment-’ . $comment_id;
else :
$location = ( empty($_POST['redirect_to']) ? get_permalink($comment_post_ID) : $_POST['redirect_to'] ) . ‘-comment-’ . $comment_id;
endif;
?>
[/code]
その他、コメントへのパーマリンクを吐き出すスクリプトを変更しなければならないが、僕の場合は最近のコメント表示に Brian’s Latest Comments というプラグインを利用しているので、その中身に上記同様の小細工をした。
具体的には104行目の #comments の部分
[code lang="php"]
echo $prefix."“.stripslashes($post->post_title). “ “.$count.”
\n“;
?>
[/code]
と、128行目の #comment- の部分。
[code lang="php"]
echo "comment_ID.”\”$title>”.stripslashes($commenter->comment_author).”“;
?>
[/code]
双方とも、’#’ を ‘-’ に変更するようにした。
アーカイブ
タグ
css magna50 plugin script wordpress たり〜ず つぶやき アーティスト イベント オシゴト オフ クイズ ケータイ ネタ ボヤキ リズム障害 便利屋 写真 出来事 剤 友達 家族 小細工 徘徊 愛tem 映画 更新記録 服 研究所 筋トレ 美味 花粉症 覚書 解説 記録 買物 追憶 電網 音楽ページ
メタ情報
愛solation-ward is proudly powered by WordPress
投稿 (RSS) と コメント (RSS)