質問編集履歴

2

タイプミスを修正

2020/01/09 01:15

投稿

nekora
nekora

スコア501

test CHANGED
File without changes
test CHANGED
@@ -144,7 +144,7 @@
144
144
 
145
145
 
146
146
 
147
- if (in_array('large_cat', $uri_array)) {
147
+ if (in_array('large_category', $uri_array)) {
148
148
 
149
149
  $array_index = array_search('large_category', $uri_array);
150
150
 

1

ソースコードを記載しました

2020/01/09 01:15

投稿

nekora
nekora

スコア501

test CHANGED
File without changes
test CHANGED
@@ -49,3 +49,171 @@
49
49
  当方が何かミスをしているのでしょうか?
50
50
 
51
51
  どなたか分かる方ご教授お願いします。
52
+
53
+
54
+
55
+ ### ご指摘によりソースコードを公開します。実際には文字列が違いますが守秘義務のためです。ロジックは変更ありません。
56
+
57
+
58
+
59
+ とあるサイトで交通経路の大項目と小項目をURLから日本語に組み立ててTITLEタグに埋めこむPHPです。
60
+
61
+
62
+
63
+ ただどういうわけか、一部の項目が日本語のままURLに出てきます。修正が膨大になるためやむおえず、そのまま組み立てていますが
64
+
65
+ これが値が取れずemptyになります。
66
+
67
+
68
+
69
+ 問題が出るURL
70
+
71
+ https://www.foobaa.com/small_category/自転車/
72
+
73
+ https://www.foobaa.com/large_category/airplane+taxi/?small_category=徒歩
74
+
75
+
76
+
77
+ 呼び出し元
78
+
79
+
80
+
81
+ header.php
82
+
83
+
84
+
85
+ <title><?php custum_wp_title();?></title>
86
+
87
+
88
+
89
+ ソースコード
90
+
91
+ ```php
92
+
93
+ <?php
94
+
95
+ // $sep セパレータ文字列 規定値は全角スペース
96
+
97
+ // $display タイトルを表示する(true)か、PHP 文字列として使えるようにタイトルの値を返す(false)か。規定値はtrue
98
+
99
+ // $suffix タイトルの末尾に追加する文字列 規定値はNULLで追加文字列無し
100
+
101
+ function custum_wp_title($sep=" ", $display=true, $suffix="") {
102
+
103
+ $category_array = [
104
+
105
+ "car"=>"車",
106
+
107
+ "buss"=>"バス",
108
+
109
+ "airplane"=>"飛行機",
110
+
111
+ "taxi"=>"タクシー",
112
+
113
+ "super-express"=>"新幹線",
114
+
115
+ "train"=>"在来線",
116
+
117
+ "express"=>"特急",
118
+
119
+ "自転車"=>"自転車",
120
+
121
+ "徒歩"=>"徒歩",
122
+
123
+ "スケボー"=>"スケボー"
124
+
125
+ ];
126
+
127
+
128
+
129
+ // echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
130
+
131
+ // echo $_SERVER['REQUEST_URI'];
132
+
133
+ $uri_array = explode('/', $_SERVER['REQUEST_URI']);
134
+
135
+ // var_dump($uri_array);
136
+
137
+ if ( !( in_array('large_category', $uri_array) || in_array('small_category', $uri_array) ) ) {
138
+
139
+ wp_title( '|', true, 'right' );bloginfo( 'name' );
140
+
141
+ return;
142
+
143
+ }
144
+
145
+
146
+
147
+ if (in_array('large_cat', $uri_array)) {
148
+
149
+ $array_index = array_search('large_category', $uri_array);
150
+
151
+ $large_categories = explode('+', $uri_array[$array_index+1]);
152
+
153
+ $echo_string ="";
154
+
155
+ foreach ($large_categories as $value) {
156
+
157
+ $echo_string .= $category_array[$value] . $sep;
158
+
159
+ }
160
+
161
+ } elseif (in_array('small_category', $uri_array)) {
162
+
163
+ $array_index = array_search('small_category', $uri_array);
164
+
165
+ $large_categories = explode('/', $uri_array[$array_index+1]);
166
+
167
+ $echo_string ="";
168
+
169
+ foreach ($large_categories as $value) {
170
+
171
+ $echo_string .= $category_array[$value] . $sep;
172
+
173
+ }
174
+
175
+ }
176
+
177
+
178
+
179
+ if (!empty( $_SERVER['QUERY_STRING']) ) {
180
+
181
+ $query_array = explode('=', $_SERVER['QUERY_STRING']);
182
+
183
+ $query_index = array_search('small_category', $query_array);
184
+
185
+ $echo_string .= $category_array[$query_array[$query_index+1]];
186
+
187
+ $echo_string .= $sep;
188
+
189
+ }
190
+
191
+
192
+
193
+ if( !empty($suffix) ) {
194
+
195
+ $echo_string .= $suffix;
196
+
197
+ }
198
+
199
+
200
+
201
+ if ($display) {
202
+
203
+ echo $echo_string;
204
+
205
+ } else {
206
+
207
+ return $echo_string;
208
+
209
+ }
210
+
211
+ }
212
+
213
+ ?>
214
+
215
+ ```
216
+
217
+
218
+
219
+ よろしくお願いします。