サポート » プラグイン » メニューに新着・更新マークを付けたい

  • 解決済 ZuGon

    (@zugon)


    私は固定ページをメニューに登録し並べています。

    その固定ページを更新したり、(これは難しいかも知れませんが)新たに作ったときに、
    更新マーク(もしくはわかるような状態)が付くようしたいです。

    記事投稿には新着マークを付けるプラグインがあったりします。
    メニュー項目に対してそんなことができるプラグインはありませんか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    メニュー項目にクラスを追加する方法はどうでしょうか?
    下記コードは、top メニューの更新日が30日以内の固定ページのメニュー項目に new クラスを追加するサンプルコードとなります。

    サンプルコード:

    function my_nav_menu_css_class( $classes, $item, $args ) {
    	if ( $args->theme_location !== 'top' )
    		return $classes;
    
    	if ( $item->type === 'post_type' && $item->object === 'page' ) {
    		if ( ( $post = get_post( $item->object_id ) ) ) {
    			$now_date = date( 'U' );
    			$post_date = mysql2date( 'U', $post->post_modified ); // 投稿日なら $post->post_date
    			$diff_date = date( 'U', ( $now_date - $post_date )) / 86400;
    			if ( (int)$diff_date <= 30 ) {
    				$classes[] = 'new';
    			}
    		}
    	}
    
    	return $classes;
    }
    
    add_filter( 'nav_menu_css_class', 'my_nav_menu_css_class', 10, 3 );

    スタイルの例:
    #top-menu .menu-item.new a:after { content: "NEW!"; }

    トピック投稿者 ZuGon

    (@zugon)

    ありがとうございます。
    サンプルコードまで頂けて本当に感謝です。
    それをカスタマイズしてうまく行きました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「メニューに新着・更新マークを付けたい」には新たに返信することはできません。