私は私のヘッダーのためにタブシステムのようなナビゲーションバーを作成しました、そして私は私のニュースボタン以外のすべてをそのページでハイライトさせることができます。ニュースは私のすべてのブログ/ニュース投稿の静的ページです。
それが私のコードかどうかはわからないが、誰かが何かアイデアを持っているなら、どうもありがとう。
<?php
$parent_title = get_the_title($post->post_parent);
?>
<?php
$items = wp_get_nav_menu_items("main-nav");
foreach($items as $item):
?>
<a <?php if($item->title == $parent_title){ echo 'class="active '.$parent_title.'"';}else{ echo 'class="'.$item->title.'"';} ?> href="<?php echo $item->url; ?>"><?php echo $item->title; ?></a>
<?php endforeach; ?>
あなたのコメントにつき:
私はメニューのHTMLとCSSを自由にカスタマイズできることを望んだからです。私は生成されたhtmlのように欲しくありませんでした:ulまたはliタグ。それに加えて、私のリンクを自由に設定することができます。 - blackbull77 20時間前
そのすべて
wp_nav_menu()
からの出力で(もちろん生成された<ul>
タグと<li>
タグを除いて - )できますが、listを出力するのでこれらのタグはsemanticallyです。 ) - チップベネット19時間前私がこれにどう対処できるかを教えていただけますか。 - blackbull77 44分前
次のようにtheme_location
を参照して、wp_nav_menu()
でリストを出力してください。
<?php
wp_nav_menu( array(
'theme_location' => 'primary_nav'
) );
?>
.current-menu-item
CSSクラスをターゲットに合わせてスタイルします。
.current_page_item
CSSクラスをターゲットにすることもできます。.current-menu-parent
、.current-menu-ancestor
、.current_page_parent
、および.current_page_ancestor
をターゲットにします。nav_menu_css_class
フィルタ を使用します。私は偶然に答えを見つけました、そして私はこれを試してみたいと思うかもしれない人のためにそれを渡します。
これが私のやり方です。
<?php if ( is_page() ) {
$parent_title = get_the_title($posts_page->post_title);
echo $parent_title;
} else {
$posts_page_id = get_option( 'page_for_posts');
$posts_page = get_page( $posts_page_id);
$posts_page_title = $posts_page->post_title;
$parent_title = $posts_page_title;
echo $parent_title;
} ?>
<?php
$items = wp_get_nav_menu_items("main-nav");
foreach($items as $item):
?>
<a <?php if($item->title == $parent_title){ echo 'class="active '.$item->title.'"';}else{ echo 'class="'.$item->title.'"';} ?> href="<?php echo $item->url; ?>"><?php echo $item->title; ?></a>
<?php endforeach; ?>
投稿がページの場合は、親ページのタイトルが投稿されます。それ以外の場合は、ブログの静的ページタイトルの名前が表示されます。これが何人かの人々に役立つことを願っています。