質問編集履歴

16

パン屑リスト

2019/03/04 22:20

投稿

M.Y.
M.Y.

スコア29

test CHANGED
@@ -1 +1 @@
1
- 複数タグ(及び複数クエリー・パラメーター)で絞り込みした際のタグ・アーカイブ・ページのURLをパーマリンク(/tag/)に統一し、タイトル表示でもタグ複数の併記に変更したい。
1
+ 複数タグ(及び複数クエリー・パラメーター)で絞り込みした際のタグ・アーカイブ・ページのURLをパーマリンク(/tag/)に統一し、タイトル表示(パン屑リスト含む)でもタグ複数の併記に変更したい。
test CHANGED
File without changes

15

アクション・フック

2019/03/04 22:20

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -150,7 +150,7 @@
150
150
 
151
151
  ```
152
152
 
153
- ただし、パン屑リストでの表示に問題は残る現在、プラグイン[Breadcrumb NavXT](https://mtekk.us/code/breadcrumb-navxt/)を使用)。
153
+ ただし、パン屑リストでの表示に猶も問題は残る現在、プラグイン[Breadcrumb NavXT](https://ja.wordpress.org/plugins/breadcrumb-navxt/#description)を使用(プラグインに用意された[アクション・フック](https://mtekk.us/code/breadcrumb-navxt/breadcrumb-navxt-doc/2/#action_reference)をする[改造法](https://accelboon.com/tn/breadcrumb-navxt-%e3%81%a7%e7%8b%ac%e8%87%aa%e3%81%ae%e9%a0%85%e7%9b%ae%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b/)で、何とかできないか……?)。
154
154
 
155
155
 
156
156
 

14

Breadcrumb NavXT

2019/03/04 21:58

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -150,7 +150,7 @@
150
150
 
151
151
  ```
152
152
 
153
- ただし、パン屑リストでの表示に問題は残る。
153
+ ただし、パン屑リストでの表示に問題は残る(現在、プラグイン[Breadcrumb NavXT](https://mtekk.us/code/breadcrumb-navxt/)を使用)
154
154
 
155
155
 
156
156
 

13

パン屑リスト

2019/03/03 15:01

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -150,6 +150,8 @@
150
150
 
151
151
  ```
152
152
 
153
+ ただし、パン屑リストでの表示に問題は残る。
154
+
153
155
 
154
156
 
155
157
  ### 試したこと

12

パーマリンク/search/と組み合せた場合を追記

2019/03/02 01:12

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -190,7 +190,7 @@
190
190
 
191
191
  ```
192
192
 
193
- とするのも試してみましたが、URLパラメーターが`?tag=タグ名A+タグ名B`だと`/tag/タグ名A+タグ名B`へのリダイレクトに成功するものの、タグだけでなくキイワード検索と組合わせた`?tag=タグ名A&s=キーワードB`では`/tag/タグ名A`へと遷移してしまってやはり「&」以下のクエリー`&s=キーワードB`が脱け落ちます。
193
+ とするのも試してみましたが、URLパラメーターが`?tag=タグ名A+タグ名B`だと`/tag/タグ名A+タグ名B`へのリダイレクトに成功するものの、タグだけでなくキイワード検索と組合わせた`?tag=タグ名A&s=キーワードB`では`/tag/タグ名A`へと遷移してしまってやはり「&」以下のクエリー`&s=キーワードB`が脱け落ちます。同様に`http://example.com/wp/search/キーワードB?tag=タグ名A`でもリダイレクト先は`http://example.com/wp/tag/タグ名A`となってしまって`/search/キーワードB`が除去されるので、折角の複数パラメーターでのフィルタリング機能が空しくなります。
194
194
 
195
195
  コード中の`wp_safe_redirect`を`wp_redirect`にしたりしても、駄目です。
196
196
 

11

翻訳関数__除去。「get_queried_objectがだめになるケース」を参照。

2019/03/01 06:25

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -140,7 +140,7 @@
140
140
 
141
141
  if ( is_tag() ) {
142
142
 
143
- $title = sprintf( esc_html__( 'タグ: %s' ), multiple_tags() );
143
+ $title = sprintf( esc_html( 'タグ: %s' ), multiple_tags() );
144
144
 
145
145
  }
146
146
 
@@ -198,6 +198,8 @@
198
198
 
199
199
  複合条件での絞り込みでうまくゆかなくなるのは、「[Wordpress検索結果のURLを変えたい](https://teratail.com/questions/141475)」と類似です。そこでのコメントで質問者が「キーワードのみの検索」でなく「キーワード以外にパラメータを指定して検索をかける」と述べた箇所……。
200
200
 
201
+ または、「[get_queried_objectがだめになるケース](http://www-creators.com/archives/1107#get_queried_object-2)」で「タクソノミーアーカイブを、複数のタームでフィルターすると・・・、クエリーは動作するのですが、get_queired_objectは複数のタームが指定される事は考慮されていないので、おかしな値を返してきます」とあるのに、似るのかも……?
202
+
201
203
 
202
204
 
203
205
  さて、どこを直せばうまくゆくのか。

10

タイトルに「(及び複数クエリー・パラメーター)」を挿入。

2019/03/01 06:13

投稿

M.Y.
M.Y.

スコア29

test CHANGED
@@ -1 +1 @@
1
- 複数タグで絞り込みした際のタグ・アーカイブ・ページのURLをパーマリンク(/tag/)に統一し、タイトル表示でもタグ複数の併記に変更したい。
1
+ 複数タグ(及び複数クエリー・パラメーター)で絞り込みした際のタグ・アーカイブ・ページのURLをパーマリンク(/tag/)に統一し、タイトル表示でもタグ複数の併記に変更したい。
test CHANGED
@@ -176,7 +176,7 @@
176
176
 
177
177
  ```
178
178
 
179
- しかし、これで`http://example.com/wp/?tag=タグ名A+タグ名B`とクエリーを入力すると、リダイレクト結果のURLは`http://example.com/wp/tag/タグ名A%2Bタグ名B`となってしまって、「お探しのページが見つかりません。」と出ます。URL文字列で「+」が「%2B」にエンコードされた所為か、複数タグでのフィルタリングが無効になるみたいです。
179
+ しかし、これで`http://example.com/wp/?tag=タグ名A+タグ名B`とクエリーを入力すると、リダイレクト結果のURLは`http://example.com/wp/tag/タグ名A%2Bタグ名B`となってしまって、「お探しのページが見つかりません。」と出ます。URL文字列で「+」が「%2B」にエンコードされた所為か、複数タグでのフィルタリングが無効になります。
180
180
 
181
181
  また、タグで絞り込みした一覧を更にキーワード検索で絞り込んだ場合のURL`http://example.com/wp/?tag=タグ名A&s=キーワードB`でも、結果は「ページが見つかりませんでした」になります。遷移後のURLからはなぜか`&s=キーワードB`が脱落し、しかも、「タグ名A」を仮に日本語で"あ"とするとエンコードは"%E3%81%82"ですが、このエンコードした文字列中の「%」がさらに「%25」にエンコードされて"%25e3%2581%2582"となる始末。これが`http://example.com/wp/tag/タグ名A?s=キーワードB`だったらまともに動作するので、どうも「tag」以外のパラメーターが&で附加されてゆくといけないみたいです。
182
182
 

9

推敲

2019/02/28 16:53

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -192,11 +192,15 @@
192
192
 
193
193
  とするのも試してみましたが、URLパラメーターが`?tag=タグ名A+タグ名B`だと`/tag/タグ名A+タグ名B`へのリダイレクトに成功するものの、タグだけでなくキイワード検索と組合わせた`?tag=タグ名A&s=キーワードB`では`/tag/タグ名A`へと遷移してしまってやはり「&」以下のクエリー`&s=キーワードB`が脱け落ちます。
194
194
 
195
+ コード中の`wp_safe_redirect`を`wp_redirect`にしたりしても、駄目です。
196
+
197
+
198
+
195
- 複合条件での絞り込みでうまくゆかなのは、「[Wordpress検索結果のURLを変えたい](https://teratail.com/questions/141475)」と類似です。そこでのコメントで質問者が「キーワードのみの検索」でなく「キーワード以外にパラメータを指定して検索をかける」と述べた箇所……。
199
+ 複合条件での絞り込みでうまくゆかなくなるのは、「[Wordpress検索結果のURLを変えたい](https://teratail.com/questions/141475)」と類似です。そこでのコメントで質問者が「キーワードのみの検索」でなく「キーワード以外にパラメータを指定して検索をかける」と述べた箇所……。
196
-
197
- ほか、コード中の`wp_safe_redirect`を`wp_redirect`にしても、やはり駄目です。
200
+
198
-
201
+
202
+
199
- どこを直せばうまくゆくのか。
203
+ さて、どこを直せばうまくゆくのか。
200
204
 
201
205
  或いは、別の解法があるのか($wp_rewriteを使った方法……?)。
202
206
 

8

「試したこと」に大幅加筆。

2019/02/28 16:50

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  ```
38
38
 
39
- これは「+」で附け足したタグ名Bが無視されてしまって単数タグの場合と変がなく、紛れやすい。混同を防ぐには、複合したフィルタリングであることを明示すべきですから、
39
+ これは「+」で附け足したタグ名Bが無視されてしまって単数タグの場合と変がなく、紛れやすい。混同を防ぐには、複合したフィルタリングであることを明示すべきですから、
40
40
 
41
41
  ```HTML
42
42
 
@@ -178,11 +178,27 @@
178
178
 
179
179
  しかし、これで`http://example.com/wp/?tag=タグ名A+タグ名B`とクエリーを入力すると、リダイレクト結果のURLは`http://example.com/wp/tag/タグ名A%2Bタグ名B`となってしまって、「お探しのページが見つかりません。」と出ます。URL文字列で「+」が「%2B」にエンコードされた所為か、複数タグでのフィルタリングが無効になるみたいです。
180
180
 
181
- ードの`wp_safe_redirect`を`wp_redirect`にしてやはり駄目です。
181
+ また、タグで絞り込みした一覧を更にキワー検索で絞り込んだ場合URL`http://example.com/wp/?tag=タグ名A&s=キーワードB`でも、結果は「ページが見つかりませんでした」になります。遷移後のURLからはなぜか`&s=キーワードB`が脱落し、しかも、「タグ名A」仮に日本語で"あ"とするとエンコードは"%E3%81%82"ですが、このエンコードした文字列中の「%」がさらに「%25」にエンコードされて"%25e3%2581%2582"となる始末。これが`http://example.com/wp/tag/タグ名A?s=キーワードB`だったらまとも動作するので、どう「tag」以外のパラメーターが&附加されてゆくといけないみたいです。
182
+
183
+
184
+
185
+ エンコードが原因ならば、と上記コード三行目で`urlencode()`を使用せずに
186
+
187
+ ```PHP
188
+
189
+ wp_safe_redirect( home_url( '/tag/' ) . get_query_var( 'tag' ) );
190
+
191
+ ```
192
+
193
+ とするのも試してみましたが、URLパラメーターが`?tag=タグ名A+タグ名B`だと`/tag/タグ名A+タグ名B`へのリダイレクトに成功するものの、タグだけでなくキイワード検索と組合わせた`?tag=タグ名A&s=キーワードB`では`/tag/タグ名A`へと遷移してしまってやはり「&」以下のクエリー`&s=キーワードB`が脱け落ちます。
194
+
195
+ 複合条件での絞り込みでうまくゆかないのは、「[Wordpress検索結果のURLを変えたい](https://teratail.com/questions/141475)」と類似です。そこでのコメントで質問者が「キーワードのみの検索」でなく「キーワード以外にパラメータを指定して検索をかける」と述べた箇所……。
196
+
197
+ ほか、コード中の`wp_safe_redirect`を`wp_redirect`にしても、やはり駄目です。
182
198
 
183
199
  どこを直せばうまくゆくのか。
184
200
 
185
- 或いは、別の解法があるのか。
201
+ 或いは、別の解法があるのか($wp_rewriteを使った方法……?)
186
202
 
187
203
  御教示戴けると有り難く存じます。
188
204
 

7

追記の日附を訂正。

2019/02/28 16:30

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  e.g.[get_the_archive_title()で呼び出したタイトルから”アーカイブ:”、”カテゴリー:”、”タグ:”、”作者:”を消す方法](http://shintaro-kawase.hatenablog.com/entry/20160620/1466351239)
56
56
 
57
- **2019-02-08追記**
57
+ **2019-02-28追記**
58
58
 
59
59
  既に消滅したサイトながらInternet Archiveに残存する「[[覚書] 複数タグのアーカイブで、タグ情報一式を取得](http://web.archive.org/web/20130427063725/http://animal-taste.com/wordpress-tips/2008/12/1115.html)」を真似て、タイトル表示の問題は解決できました。下記コードをテーマのfunctions.phpに追加。
60
60
 

6

コードと地の文とを統一

2019/02/28 13:26

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  ```HTML
42
42
 
43
- <title>タグ名A+タグ名B - サイト名</title>
43
+ <title>タグ: タグ名A+タグ名B - サイト名</title>
44
44
 
45
45
  ……
46
46
 
@@ -70,11 +70,11 @@
70
70
 
71
71
  if ( strpos($tagVar, '+') || strpos($tagVar, ' ') )
72
72
 
73
- $separator = "";
73
+ $separator = " + ";
74
74
 
75
75
  else if ( strpos($tagVar, ',') )
76
76
 
77
- $separator = "";
77
+ $separator = " , ";
78
78
 
79
79
  $tagSlugs = $currentTerms = array();
80
80
 
@@ -124,7 +124,7 @@
124
124
 
125
125
  if ( is_tag() ) {
126
126
 
127
- $title['title'] = 'タグ:'.multiple_tags();
127
+ $title['title'] = 'タグ: '.multiple_tags();
128
128
 
129
129
  }
130
130
 
@@ -134,13 +134,13 @@
134
134
 
135
135
 
136
136
 
137
- // アーカイブ・ページのタイトル変更
137
+ // アーカイブ・ページのタイトル(h1要素)変更
138
138
 
139
139
  add_filter( 'get_the_archive_title', function ($title) {
140
140
 
141
141
  if ( is_tag() ) {
142
142
 
143
- $title = sprintf( esc_html__( 'タグ%s' ), multiple_tags() );
143
+ $title = sprintf( esc_html__( 'タグ: %s' ), multiple_tags() );
144
144
 
145
145
  }
146
146
 

5

「発生している問題」に解決法の追記。

2019/02/28 13:22

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -54,6 +54,102 @@
54
54
 
55
55
  e.g.[get_the_archive_title()で呼び出したタイトルから”アーカイブ:”、”カテゴリー:”、”タグ:”、”作者:”を消す方法](http://shintaro-kawase.hatenablog.com/entry/20160620/1466351239)
56
56
 
57
+ **2019-02-08追記**
58
+
59
+ 既に消滅したサイトながらInternet Archiveに残存する「[[覚書] 複数タグのアーカイブで、タグ情報一式を取得](http://web.archive.org/web/20130427063725/http://animal-taste.com/wordpress-tips/2008/12/1115.html)」を真似て、タイトル表示の問題は解決できました。下記コードをテーマのfunctions.phpに追加。
60
+
61
+ ```PHP
62
+
63
+ function multiple_tags() {
64
+
65
+ //複数タグのアーカイブでURLからスラッグを拾ってID・タグ名を取得。
66
+
67
+ $tagVar = get_query_var('tag');
68
+
69
+ if ( !empty($tagVar) ) {
70
+
71
+ if ( strpos($tagVar, '+') || strpos($tagVar, ' ') )
72
+
73
+ $separator = "+";
74
+
75
+ else if ( strpos($tagVar, ',') )
76
+
77
+ $separator = "/";
78
+
79
+ $tagSlugs = $currentTerms = array();
80
+
81
+ $tagSlugs = preg_split('(+|,| )', $tagVar);
82
+
83
+ foreach ($tagSlugs as $tagSlug)
84
+
85
+ $currentTerms[] = get_term_by('slug', $tagSlug, 'post_tag');
86
+
87
+ }
88
+
89
+ //出力
90
+
91
+ if ( !empty($currentTerms) ) {
92
+
93
+ $tagCount = count($currentTerms);
94
+
95
+ $i = 2;
96
+
97
+ foreach ($currentTerms as $currentTerm) {
98
+
99
+ $currentTagName .= $currentTerm->name;
100
+
101
+ if ( $i < $tagCount )
102
+
103
+ $currentTagName .= ', ';
104
+
105
+ else if ( $i == $tagCount )
106
+
107
+ $currentTagName .= $separator;
108
+
109
+ $i++;
110
+
111
+ }
112
+
113
+ }
114
+
115
+ return $currentTagName;
116
+
117
+ }
118
+
119
+
120
+
121
+ // titleタグ変更 Cf. https://teratail.com/questions/168613
122
+
123
+ function change_document_title_parts( $title ) {
124
+
125
+ if ( is_tag() ) {
126
+
127
+ $title['title'] = 'タグ:'.multiple_tags();
128
+
129
+ }
130
+
131
+ return $title;
132
+
133
+ }
134
+
135
+
136
+
137
+ // アーカイブ・ページのタイトル変更
138
+
139
+ add_filter( 'get_the_archive_title', function ($title) {
140
+
141
+ if ( is_tag() ) {
142
+
143
+ $title = sprintf( esc_html__( 'タグ:%s' ), multiple_tags() );
144
+
145
+ }
146
+
147
+ return $title;
148
+
149
+ });
150
+
151
+ ```
152
+
57
153
 
58
154
 
59
155
  ### 試したこと

4

single_tag_title()に関し追記

2019/02/28 13:12

投稿

M.Y.
M.Y.

スコア29

test CHANGED
@@ -1 +1 @@
1
- 複数タグで絞り込みした際のタグ・アーカイブページURLをパーマリンク(/tag/)に統一し、タイトル表示でもタグ複数の併記に変更したい。
1
+ 複数タグで絞り込みした際のタグ・アーカイブページURLをパーマリンク(/tag/)に統一し、タイトル表示でもタグ複数の併記に変更したい。
test CHANGED
@@ -50,6 +50,10 @@
50
50
 
51
51
  と、指定したタグ複数を併記する表示に改める仕組みにしたい。
52
52
 
53
+ アーカイブ・ページのタイトルを変更する方法を検索しても、`single_tag_title()`関数で接頭辞(prefix)の「タグ:」を削除する例ばかり出てきて、複数のタグ・スラッグを取得するやり方が見つけられません。
54
+
55
+ e.g.[get_the_archive_title()で呼び出したタイトルから”アーカイブ:”、”カテゴリー:”、”タグ:”、”作者:”を消す方法](http://shintaro-kawase.hatenablog.com/entry/20160620/1466351239)
56
+
53
57
 
54
58
 
55
59
  ### 試したこと

3

タイトル加筆

2019/02/26 07:35

投稿

M.Y.
M.Y.

スコア29

test CHANGED
@@ -1 +1 @@
1
- 複数タグで絞り込みした際のタグ・アーカイブのページURLをパーマリンクに統一し、タイトル表示も変更したい。
1
+ 複数タグで絞り込みした際のタグ・アーカイブのページURLをパーマリンク(/tag/)に統一し、タイトル表示タグ複数の併記に変更したい。
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
   [サイトURL]/tag/「タグのスラッグ」
6
6
 
7
-  即ち、URLに`http://example.com/wp/?tag=タグ名`とクエリのパラメーターを附け足すと、強制的に`http://example.com/wp/tag/タグ名`へと遷移されます。
7
+  即ち、URLに`http://example.com/wp/?tag=タグ名`とクエリのパラメーターを附け足すと、強制的に`http://example.com/wp/tag/タグ名`へと自動遷移されます。
8
8
 
9
9
   ところで、記事にタグは複数附けられ、指定した複数のタグを併せ持つ記事をAND検索みたいに絞り込み表示できます。
10
10
 
@@ -48,7 +48,7 @@
48
48
 
49
49
  ```
50
50
 
51
- と表示改める仕組みにしたい。
51
+ 、指定したタグ複数を併記する表示改める仕組みにしたい。
52
52
 
53
53
 
54
54
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  しかし、これで`http://example.com/wp/?tag=タグ名A+タグ名B`とクエリーを入力すると、リダイレクト結果のURLは`http://example.com/wp/tag/タグ名A%2Bタグ名B`となってしまって、「お探しのページが見つかりません。」と出ます。URL文字列で「+」が「%2B」にエンコードされた所為か、複数タグでのフィルタリングが無効になるみたいです。
80
80
 
81
- コード中の`wp_safe_redirect`を`wp_redirect`にしても駄目です。
81
+ コード中の`wp_safe_redirect`を`wp_redirect`にしてもやはり駄目です。
82
82
 
83
83
  どこを直せばうまくゆくのか。
84
84
 

2

タイトル変更

2019/02/25 10:11

投稿

M.Y.
M.Y.

スコア29

test CHANGED
@@ -1 +1 @@
1
- 複数タグで絞り込みした際のタグ・アーカイブのページURLをパーマリンクに統一したい
1
+ 複数タグで絞り込みした際のタグ・アーカイブのページURLをパーマリンクに統一し、タイトル表示も変更したい
test CHANGED
File without changes

1

脱字修正

2019/02/24 07:14

投稿

M.Y.
M.Y.

スコア29

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
-  もしできることならば、タグで絞り込んだ中から更にキーワード検索で絞り込みする場合のURL`http://example.com/wp/?tag=タグ名A&s=キーワードB`乃至`http://example.com/wp/tag/タグ名?s=キーワードB`等も、パーマリンクに則って`http://example.com/wp/tag/タグ名A/search/キーワードB`へと遷移されることが、望ましい。
19
+  猶、できることならば、タグで絞り込んだ中から更にキーワード検索で絞り込みする場合のURL`http://example.com/wp/?tag=タグ名A&s=キーワードB`乃至`http://example.com/wp/tag/タグ名?s=キーワードB`等も、パーマリンクに則って`http://example.com/wp/tag/タグ名A/search/キーワードB`へと遷移されることが、望ましい。
20
20
 
21
21
  Cf.[WordPressのサイト上で簡単に並び替え&絞り込みする方法 ](https://magnets.jp/web_design/3124/)
22
22
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  しかし、これで`http://example.com/wp/?tag=タグ名A+タグ名B`とクエリーを入力すると、リダイレクト結果のURLは`http://example.com/wp/tag/タグ名A%2Bタグ名B`となってしまって、「お探しのページが見つかりません。」と出ます。URL文字列で「+」が「%2B」にエンコードされた所為か、複数タグでのフィルタリングが無効になるみたいです。
80
80
 
81
- `wp_safe_redirect`を`wp_redirect`にしても駄目です。
81
+ コード中の`wp_safe_redirect`を`wp_redirect`にしても駄目です。
82
82
 
83
83
  どこを直せばうまくゆくのか。
84
84