0

単一の投稿を表示するときに、メインのブログ ロールを強調表示しようとしています。投稿のカテゴリは 1 つしかなく、このカテゴリを表示するメニューがないため、.current-post-ancestor を使用できません。

次の関数がありますが、理解できないエラーが発生します。カテゴリは「show」、ブログページのidは15

//Highlight Blog Link in main menu when on post page
function post_css_class( $css_class, $page ) {

if (in_category('show') == $page->15 ) {
    $css_class[] = '#header .menu .current_page_item a';
}
return $css_class;
}
add_filter( 'page_css_class', 'post_css_class', 10, 2 );`

助けてくれてありがとう

4

3 に答える 3

0

これが私のために働いたものです:

<?php if (is_single() || is_category() || is_tag() || is_search()) {   //  displaying a single blog post or a blog archive ?>
    <script type="text/javascript">
        jQuery("li.current_page_parent").addClass('current-menu-item');
    </script>
<?php } ?>

どのように機能するかは、コードが、ユーザーがいるページが単一の投稿かアーカイブ (カテゴリ、タグ、または検索) かをチェックすることです。

true の場合、クラスを持つナビゲーション メニュー項目liタグcurrent_page_parent(この場合は「ブログ」リンク) に別のネイティブ WordPress ナビゲーション メニューliクラスが割り当てられcurrent-menu-item、リンクがどのようにスタイルされたかに応じて、アクティブまたは強調表示されます。

詳細が必要な場合は、ここにプロセスを説明する短い記事を書きます

于 2015-02-14T12:21:52.750 に答える
0

わかった - やった - 他の誰かが同じものを探しているなら、ここに私の機能があります:

function blog_link_genesis() {
if( is_single() && in_category('show')) { 
$current = '#header .menu #menu-item-19 a';  }
?>
<style type="text/css">
<?php echo $current; ?> { color: #ef4634;}
</style>
<?php }
add_action( 'genesis_header' , 'blog_link_genesis'  );

これが私が追加したCSSです

header .menu .current-menu-item #menu-item-19 a{color: #ef4634;}

おそらく余分なマークアップがあります。誰かがそれを修正したい場合は、私のゲストになってください!

于 2013-08-18T15:57:19.733 に答える
0
function my_special_nav_class( $classes, $item ) {
    if( is_single() && in_category('show') && $page->ID == 15 ) {
        $classes[] = 'current_page_item';
    }
    return $classes;
}
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );

うまくいくかもしれませんか?

とにかく、page_css_class を使用することは想定されていません。代わりにこれを参照してください http://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class

于 2013-08-17T22:07:17.540 に答える