2009/6/11

WordPressのページでカテゴリ内ナビゲーションを作る

※ちょっと挙動がおかしかったので修正しました。
WordPressのページでカテゴリ内ナビゲーションを作る その2

WordPressでこういうソースを吐かせたくて、PHP書いてたのですが、ちゃんと勉強してないので、機能はしたもののえらく汚いというかスマートさがないコードになってしまった。

<h2 class="subnavititle">親ページタイトル</h2>
<div class="pagenavi">
<ul>
<li><a href="http://www.xxx.com/service">親ページタイトル</a></li>
<li><a href="http://www.xxx.com/service/staff">子ページタイトル</a></li>
</ul>
</div>

これがこうなってしまった。ページの例外処理をした後に、親ページで見出しを作って、その下に子ページのリストを並べるという、典型的なカテゴリ内のナビゲーションです。

<?php if (is_page(ページA) or is_page(ページB) or is_page(ページC) or is_page(ページD) ) {
}
else {
$title = get_the_title($post->post_parent);
$link = get_permalink();
echo "<h2 class="subnavititle">$title</h2>
<div class="pagenavi">
<ul>
<li><a href="$link">$title</a></li>n";
if ( $post->post_parent == 0 ) {
$child_posts = get_posts( ‘numberposts=-1&order=ASC&orderby=post_title&post_type=page&post_parent=’ . $post->ID );
if ( $child_posts ) {
foreach ( $child_posts as $child ) {
$c_title = apply_filters( ‘the_title’, $child->post_title );
$c_link = get_permalink($child);
echo "<li><a href="$c_link">$c_title</a></li>";
}
}
}
echo "
</ul>n</div>n";
}
?>

うーん、なんだこのechoの数は。絶対もっと綺麗になるんだと思うのだが。条件分岐する場合は全部囲ってechoコード吐き出すしかないんですかね。ああ、プログラミングの勉強ちゃんとやらなかったことが悔やまれる。

追記:
echoのまとめ方はわかったので修正。

加藤 康祐 / 企画・設計

プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。

加藤康祐企画設計

是非、フォローしてください!
Twitter / Instagram

(2012-10-5)
売り上げランキング: 14,705
100円