サイトマップの改善とトラックバックの表示の追加
先日のリニューアルでのデグレード。
トラックバックが表示されなくなってしまっていた。
WordPress Bootstrapには、標準では実装されてないんだね・・・。
と、言うわけでcomment.phpをカスタマイズして、トラックバックを表示するようにしてみた。
実装したのはこんな感じ。
<div class="trackback"> <?php if ('open' == $post->ping_status) : ?> <h3 id="trackback-url"><?php _e("Trackback URL", "bonestheme"); ?></h3> <p class="trackback-comment"></p> <input onfocus="this.select()" value="<?php trackback_url(); ?>" class="input-xxlarge" id="tb_url" name="tb_url" accesskey="x"/> <?php endif; ?> </div>
これで、無事に表示されるようになった。
(このページでも、下の方に出てます)
サイトマップの方は、全ての投稿の一覧を表示したいと思いつつも、
そのまま表示するんじゃ、投稿数が多くなると重いやら長いやらで困る。
と、いうわけで投稿50件ごとにページングする、ページナビゲーションを実装してみた。
WordPressには、標準でpaginate_linksって言う
ページナビゲーションを生成する処理があるんだけれど、
WordPress Bootstrap(と、言うよりはベースになったbonesか?)では、
オリジナルのページナビゲーションを実装している様子。
デザイン的に統一するんなら、そっちをパクった参考にしたほうがいいよね。
って、事で長い実装になってしもうた。
<?php //pagenavigation $posts_per_page = $archive_query->posts_per_page; $numposts = $archive_query->found_posts; $max_page = $archive_query->max_num_pages; if ( $numposts <= $posts_per_page ) { return; } if(empty($paged) || $paged == 0) { $paged = 1; } $pages_to_show = 3; $pages_to_show_minus_1 = $pages_to_show-1; $half_page_start = floor($pages_to_show_minus_1/2); $half_page_end = ceil($pages_to_show_minus_1/2); $start_page = $paged - $half_page_start; if($start_page <= 0) { $start_page = 1; } $end_page = $paged + $half_page_end; if(($end_page - $start_page) != $pages_to_show_minus_1) { $end_page = $start_page + $pages_to_show_minus_1; } if($end_page > $max_page) { $start_page = $max_page - $pages_to_show_minus_1; $end_page = $max_page; } if($start_page <= 0) { $start_page = 1; } echo '<div class="pagination"><ul class="clearfix">'.""; //first if ($paged > 1) { $first_page_text = "«"; echo '<li class="prev"><a href="'.get_pagenum_link().'" title="First">'.$first_page_text.'</a></li>'; } //previous $prevposts = get_previous_posts_link('← Previous'); if ($prevposts) { echo '<li>' . $prevposts . '</li>'; } else { echo '<li class="disabled"><a href="#">← Previous</a></li>'; } //num for($i = $start_page; $i <= $end_page; $i++) { if($i == $paged) { echo '<li class="active"><a href="#">'.$i.'</a></li>'; } else { echo '<li><a href="'.get_pagenum_link($i).'">'.$i.'</a></li>'; } } //next $nextposts = '<a href="' . get_pagenum_link($paged + 1). '">Next →' . '</a>'; if ($paged == $max_page) { echo '<li class="disabled"><a href="#">Next →</a></li>'; } else { echo '<li>' . $nextposts . '</li>'; } //last if ($end_page < $max_page) { $last_page_text = "»"; echo '<li class="last"><a href="'.get_pagenum_link($max_page).'" title="Last">'.$last_page_text.'</a></li>'; } echo '</ul></div>'.""; ?> </div>
本当はpaginate_linksみたいに汎用的に作った方がいいんだろうけどね。
今んとこ、サイトマップ以外での用途が思いつかなかったから、
そのままサイトマップ用のページに記述してもうた。
その内暇ができたら、function.phpに移そう。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント