0

カスタムの WordPress テーマがあり、ナビゲーション バーは適切に実装されていますが、次の CSS (style.css) があります。

#navbar li a.active{

background-color:#000;
color:#fff;
border-top: 3px solid; 
border-color:#d22b2b;
}

これは、現在のページがオンになっているボタンのスタイルで、現在アクティブなページを示します。HTML (index.php) が次のようになっているため、WordPress で実装するのは少し難しいです。

<div id="navbar">
<div class="navbarcontainer">

          <ul align="center">
          <?php wp_list_pages('title_li=');?>

          </ul>

</div>
</div>

class="active"順序付けられていないリストにリスト項目が表示されないため、追加できません。class="active"各ページに追加できる方法が必要です。

4

1 に答える 1

1

コメントするのに十分な担当者がいませんが、ネイティブの WordPress メニューを使用してみませんか? wp_nav_menu(); を使用すると、今後の作業が楽になります。

ここを参照してください: http://codex.wordpress.org/Function_Reference/wp_nav_menu

そのようにメニューを適切に使用すると、このクラスがアクティブなメニュー項目に自動的に適用されます。

.current-menu-item

それは単なるネイティブ機能です。あなたがその道を行くことに決めたら、私に知らせてください。私は喜んでお手伝いします.

functions.php ファイルに以下を追加します。

register_nav_menus('menu_slug' => 'Menu Name');

これにより、バックエンドでメニューを割り当てることができます。外観 -> メニューに移動します。

次に、メニューを呼び出そうとしている場所に、次のコードを追加します。

wp_nav_menu('menu'=> 'menu_slug');

これにより、バックエンドで作成したメニューがプルされます。その wp_nav_menu 関数にも渡すことができる引数はたくさんあります。

$defaults = array(
    'theme_location'  => '',
    'menu'            => '',
    'container'       => 'div',
    'container_class' => '',
    'container_id'    => '',
    'menu_class'      => 'menu',
    'menu_id'         => '',
    'echo'            => true,
    'fallback_cb'     => 'wp_page_menu',
    'before'          => '',
    'after'           => '',
    'link_before'     => '',
    'link_after'      => '',
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth'           => 0,
    'walker'          => ''

);

このように使用する場合は、このコードをテーマに追加してから:

    wp_nav_menu ( $defaults );

そのようにすると、WordPress がアクティブなメニュー項目に現在のクラスを自動的に与えることに気付くでしょう。これが役立つことを願っています。正直なところ、これが最善の (正しい) 方法です。ある時点で、メニュー項目の配置を切り替えたり、サブメニューを追加したり、表示したくないページを作成したりすることが必要になる場合があります。このようなメニューを使用すると、大幅に役立ちます。

于 2013-09-11T20:57:10.917 に答える