質問編集履歴

1

コードの修正

2019/05/14 07:01

投稿

kisa117
kisa117

スコア12

test CHANGED
File without changes
test CHANGED
@@ -20,143 +20,103 @@
20
20
 
21
21
  ```PHP
22
22
 
23
- <?php if(empty(get_search_query())): ?>
24
-
25
- <p>キーワードが入力されていません。</p>
26
-
27
- <?php else: ?>
28
-
29
- <p>「<?php echo get_search_query(); ?>」の検索結果</p>
30
-
31
- <?php
32
-
33
- global $wpdb;
23
+ global $wpdb;
34
24
 
35
25
 
36
26
 
37
- $keyword = get_search_query();
27
+ $keyword = get_search_query();
38
28
 
39
- $all_keyword = $keyword == "" ? array() : explode(" ", $keyword);
29
+ $all_keyword = $keyword == "" ? array() : explode(" ", $keyword);
40
30
 
41
- $all_keyword = array_unique($all_keyword);
31
+ $all_keyword = array_unique($all_keyword);
42
32
 
43
33
 
44
34
 
45
- if( count($all_keyword) > 8 ) {
35
+ if( count($all_keyword) > 8 ) {
46
36
 
47
- $all_keyword = array_slice($all_keyword, 0, 8);
37
+ $all_keyword = array_slice($all_keyword, 0, 8);
48
38
 
49
- }
39
+ }
50
40
 
51
41
 
52
42
 
53
- $tbl_cnt = 0;
43
+ $tbl_cnt = 0;
54
44
 
55
- foreach ($all_keyword as $_key) {
45
+ foreach ($all_keyword as $_key) {
56
46
 
57
- $tbl = "key".$tbl_cnt++;
47
+ $tbl = "key".$tbl_cnt++;
58
48
 
59
- $keyword_like = '%'.$wpdb->esc_like(trim($_key)).'%';
49
+ $keyword_like = '%'.$wpdb->esc_like(trim($_key)).'%';
60
50
 
61
51
 
62
52
 
63
- // カスタムフィールド
53
+ // カスタムフィールド
64
54
 
65
- $post_ids_meta = $wpdb->get_col( $wpdb->prepare( "
55
+ $post_ids_meta = $wpdb->get_col( $wpdb->prepare( "
66
56
 
67
- SELECT DISTINCT post_id FROM {$wpdb->postmeta}
57
+ SELECT DISTINCT post_id FROM {$wpdb->postmeta}
68
58
 
69
- WHERE meta_value LIKE '%s'
59
+ WHERE meta_value LIKE '%s'
70
60
 
71
- ", $keyword_like ) );
61
+ ", $keyword_like ) );
72
62
 
73
63
 
74
64
 
75
- // タイトル + 本文
65
+ // タイトル + 本文
76
66
 
77
- $post_ids_post = $wpdb->get_col( $wpdb->prepare( "
67
+ $post_ids_post = $wpdb->get_col( $wpdb->prepare( "
78
68
 
79
- SELECT DISTINCT ID FROM {$wpdb->posts}
69
+ SELECT DISTINCT ID FROM {$wpdb->posts}
80
70
 
81
- WHERE post_title LIKE '%s'
71
+ WHERE post_title LIKE '%s'
82
72
 
83
- OR post_content LIKE '%s'
73
+ OR post_content LIKE '%s'
84
74
 
85
- ", $keyword_like, $keyword_like ) );
75
+ ", $keyword_like, $keyword_like ) );
86
76
 
87
77
 
88
78
 
89
- $post_id[$tbl_cnt] = array_merge( $post_ids_meta, $post_ids_post );
79
+ $post_id[$tbl_cnt] = array_merge( $post_ids_meta, $post_ids_post );
90
80
 
91
- }
81
+ }
92
82
 
93
83
 
94
84
 
95
- $key_cnt = count($post_id);
85
+ $key_cnt = count($post_id);
96
86
 
97
- for($i=1; $i<=$key_cnt; $i++){
87
+ for($i=1; $i<=$key_cnt; $i++){
98
88
 
99
- if($key_cnt==1){
89
+ if($key_cnt==1){
100
90
 
101
- $post_ids = array_merge( $post_id[$i], $post_id[$i] );
91
+ $post_ids = array_merge( $post_id[$i], $post_id[$i] );
102
92
 
103
- break;
93
+ break;
104
94
 
105
- } elseif($key_cnt==$i) {
95
+ } elseif($key_cnt==$i) {
106
96
 
107
- break;
97
+ break;
108
98
 
109
- }
99
+ }
110
100
 
111
- $post_ids = array_merge( $post_id[$i], $post_id[$i+1] );
101
+ $post_ids = array_merge( $post_id[$i], $post_id[$i+1] );
112
102
 
113
- }
103
+ }
114
104
 
115
105
 
116
106
 
117
- // Query arguments
107
+ // Query arguments
118
108
 
119
- $args = array(
109
+ $args = array(
120
110
 
121
- 'post_type' => 'post',
111
+ 'post_type' => 'post',
122
112
 
123
- 'post_status' => 'publish',
113
+ 'post_status' => 'publish',
124
114
 
125
- 'post__in' => $post_ids,
115
+ 'post__in' => $post_ids,
126
116
 
127
- );
117
+ );
128
118
 
129
- $query = new WP_Query( $args );
119
+ $query = new WP_Query( $args );
130
-
131
- ?>
132
-
133
- <?php if(empty($post_ids)): ?>
134
-
135
- 「<?php echo get_search_query(); ?>」に一致する記事は見つかりませんでした。
136
-
137
- <?php else: ?>
138
-
139
- <ul>
140
-
141
- <?php if ( $query->have_posts() ): while ( $query->have_posts() ) : $query->the_post(); ?>
142
-
143
- <li>
144
-
145
- <a href="single.php?p=<?php the_ID();?>">
146
-
147
- <?php echo mb_strimwidth(get_the_title(), 0, 64, "…", "UTF-8"); ?>
148
-
149
- </a>
150
-
151
- </li>
152
-
153
- <?php endwhile; endif; ?>
154
-
155
- </ul>
156
-
157
- <?php endif; ?>
158
-
159
- <?php endif; ?>
160
120
 
161
121
  ```
162
122