WordBench 長野

オープンソースのブログ/CMSソフトウェア「WordPress」の長野コミュニティ

こちらで質問させていただいてよろしいでしょうか?

<Li>で書き出したアーカイブメニューに、

現在の表示ページURLと同じ場合は、<div class=”open”>

そうでない場合は、<div class=”close”>

〜などと色分けや四角で囲って、

どのページを選択しているかわかりやすくしたいのですが、

現在URLとリンクのURLを比較するPHPはどうかかけばいいでしょうか?

Wordpress タブ などで探しましたが見つかりませんでした。

よろしくお願いいたします。

4 Comments

  1. いとじゅんさん、こんばんは!

    サイドバーやヘッダーのメニューを、現在のページとリンクして色分けなどするもっとも簡単なやり方は、下記のテンプレートタグを使う方法です。

    wp_list_categories()
     →カテゴリ一覧を<li>で表示
    wp_list_pages()
     →”ページ”一覧を<li>で表示

    このタグを使うと、現在表示しているページと同じカテゴリorページの<li>には
    class=”current-cat”
    class=”current_page”
    が挿入されるので、このclassをスタイルシートで設定すると希望どおりになります。

    または、WordPressの「コンディショナルタグ」というのを使うとできます。
    is_page(’3′)
     →現在表示しているページのIDが3ならtrue
    is_category(’日記’)
     →現在表示しているカテゴリーが「日記」ならtrue

    <li<?php if(is_page(’3′)){ echo ‘ class=”open” ‘; }?>>○○○○</li>

    ↑この場合「現在表示しているページのIDが3なら、liにclass=”open”を付加する」という意味になります。

    いとじゅんさんの例なら、
    <div<?php if(is_page(’3′)){ echo ‘ class=”open” ‘; } else { echo ‘ class=”close” ‘; } ?>>○○○○</div>
    ですかね。書き方はいろいろありますが。

    やりたいことはこういうことで良かったですかね?

    ↓上記タグは他にもいろいろバリエーションがあります!
    http://wpdocs.sourceforge.jp/Conditional_Tags?rdfrom=http%3A%2F%2Fbono.s206.xrea.com%2Fwiki%2Findex.php%3Ftitle%3DConditional_Tags%26redirect%3Dno

  2. 丁寧なご説明ありがとうございます。
    早速試そうと思います。

  3. みやざわさん

    お返事遅れましたが、私のケースでは、結局以下のようなコードで解決いたしました。

    cat_ID”;}$myposts = get_posts(’orderby=post_date&order=ASC&category=’.$catid);foreach($myposts as $post) :? >

    <li ID )){ echo ‘class=”open” ‘; }?> >

    <a href=”">

    なんとなく動いてくれている、といった感じです><

  4. みやざわさん

    お返事遅れましたが、私のケースでは、結局以下のようなコードで解決いたしました。

    〈ul〉

    〈?php $cat = get_the_category(); $cat = $cat[0];{$catid= “$cat-〉cat_ID”;}$myposts = get_posts(’orderby=post_date&order=ASC&category=’.$catid);foreach($myposts as $post) :?

    〈li 〈?php if(is_single( $post-〉ID )){ echo ‘class=”open” ‘; }?〉 〉

    〈a href=”〈?php the_permalink(); ?〉”〉〈?php the_title(); ?〉〈/a〉

    〈/li〉

    〈?php endforeach; ?〉

    〈/ul〉

    なんとなく動いてくれている、といった感じです><