回答編集履歴

2

コード完成版に置き換え

2017/02/15 07:41

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,8 @@
1
+ **2017/2/15 コードができあがったので、回答を全面更新しました**
2
+
3
+
4
+
1
- 以下実装できした
5
+ 以下の機能を実装してい
2
6
 
3
7
  - 親>子>孫とネストされた状態
4
8
 
@@ -6,23 +10,7 @@
6
10
 
7
11
  - 表示中ページに該当するカテゴリ名にクラス名「current-cat」
8
12
 
9
-
10
-
11
- 以下は実装できていません。
12
-
13
13
  - 上位カテゴリに「current-cat-parrent」
14
-
15
-
16
-
17
- 中途半端な回答となってしまい申し訳ないですが、
18
-
19
- よろしければお試しください。
20
-
21
-
22
-
23
- (個人的に実装方法に興味があるので、
24
-
25
- 実装できていない部分の実装方法を今後思いついたら、こちらに記載します)
26
14
 
27
15
 
28
16
 
@@ -39,6 +27,8 @@
39
27
 
40
28
 
41
29
  $now_cat = get_query_var('cat');
30
+
31
+ $now_cat_ancestors = (empty($now_cat)) ? ('') : (get_ancestors($now_cat, $taxonomy));
42
32
 
43
33
 
44
34
 
@@ -86,25 +76,41 @@
86
76
 
87
77
  $count = my_get_count_posts( $year, $cat );
88
78
 
89
-
90
79
 
91
- // $li_class
92
-
93
- if( $cat->term_id == $now_cat) {
94
-
95
- $li_class = ' class="current-cat"';
96
-
97
- }
98
-
99
- else {
100
-
101
- $li_class = '';
102
-
103
- }
104
-
105
-
106
80
 
107
81
  if ( $count > 0 ) { // 投稿数があるカテゴリを出力
82
+
83
+ // $li_class
84
+
85
+ if( $cat->term_id == $now_cat) {
86
+
87
+ $li_class = ' class="current-cat"';
88
+
89
+ }
90
+
91
+ else if( !empty($now_cat_ancestors) ) {
92
+
93
+ if( $cat->term_id == $now_cat_ancestors[0] ) {
94
+
95
+ $li_class = ' class="current-cat-parent"';
96
+
97
+ }
98
+
99
+ else {
100
+
101
+ $li_class = '';
102
+
103
+ }
104
+
105
+ }
106
+
107
+ else {
108
+
109
+ $li_class = '';
110
+
111
+ }
112
+
113
+
108
114
 
109
115
  echo '<li' . $li_class . '>';
110
116
 

1

コードの間違いを修正

2017/02/15 07:41

投稿

退会済みユーザー
test CHANGED
@@ -62,6 +62,12 @@
62
62
 
63
63
  }
64
64
 
65
+ else {
66
+
67
+ $ul_class = '';
68
+
69
+ }
70
+
65
71
 
66
72
 
67
73
  $args = array(
@@ -87,6 +93,12 @@
87
93
  if( $cat->term_id == $now_cat) {
88
94
 
89
95
  $li_class = ' class="current-cat"';
96
+
97
+ }
98
+
99
+ else {
100
+
101
+ $li_class = '';
90
102
 
91
103
  }
92
104