特定列表项的 CSS 类

问题描述 投票:0回答:1

如果某种自定义帖子类型的最新帖子不超过一周,我想将 CSS 类添加到特定的导航菜单项 (li)。

这就是我到目前为止所得到的。它工作正常,但将 CSS 类添加到所有菜单项。如何通过 id 定位特定的 li?

function blog_menu_item_new_posts( $classes, $item ) {
   global $wpdb;

   $latest_post = $wpdb->get_var( "SELECT post_date FROM $wpdb->posts WHERE post_type = 'blogposts' AND post_status = 'publish' ORDER BY ID DESC LIMIT 0,1" );

   $latest_post_date = strtotime($latest_post);
   $threshold = strtotime("-1 week");

   if ( $latest_post_date >= $threshold ) {
     array_push( $classes, "new-posts" );
   }

   return $classes;
}

add_filter( "nav_menu_css_class", "blog_menu_item_new_posts", 10, 2 );
php wordpress wordpress-theming
1个回答
0
投票

这是通过 id(在本例中为 id 101)仅定位特定菜单项的工作代码:

function blog_menu_item_new_posts( $classes, $item ) {
   global $wpdb;

   $latest_post = $wpdb->get_var( "SELECT post_date FROM $wpdb->posts WHERE post_type = 'blogposts' AND post_status = 'publish' ORDER BY ID DESC LIMIT 0,1" );

   $latest_post_date = strtotime($latest_post);
   $threshold = strtotime("-1 week");

   if ( ( $latest_post_date >= $threshold ) && ($item->ID == 101) ) {
    array_push( $classes, "new-posts" );
   }

   return $classes;
}

add_filter( "nav_menu_css_class", "blog_menu_item_new_posts", 10, 2 );
© www.soinside.com 2019 - 2024. All rights reserved.