質問編集履歴
2
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Wordpress
|
1
|
+
Wordpressで記事を表示する効率について
|
test
CHANGED
@@ -1,77 +1,125 @@
|
|
1
|
+
### 質問したいこと
|
2
|
+
|
1
|
-
記事を公開するユーザーを限定
|
3
|
+
Wordpressで記事を公開するユーザーを限定する機能を作っています。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
次の「現状のソースコード」よりも、「改善したソースコード」の方が、記事の表示効率はいいでしょうか?
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
### 現状のソースコード
|
12
|
+
|
13
|
+
カスタムフィールド『target』に自分のIDがあるか、または『target』が空のときは記事が閲覧できる。
|
14
|
+
|
15
|
+
というコードを書いています。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
```php
|
20
|
+
|
21
|
+
$args = array(
|
22
|
+
|
23
|
+
'meta_query' => array(
|
24
|
+
|
25
|
+
'relation'=>'OR',
|
26
|
+
|
27
|
+
array(
|
28
|
+
|
29
|
+
'key' => 'target',
|
30
|
+
|
31
|
+
'value' => get_current_user_id(),
|
32
|
+
|
33
|
+
'compare' => 'LIKE', // 自分が公開相手に指定されてる場合
|
34
|
+
|
35
|
+
'type'=>'NUMERIC'
|
36
|
+
|
37
|
+
),
|
38
|
+
|
39
|
+
array(
|
40
|
+
|
41
|
+
'key' => 'target',
|
42
|
+
|
43
|
+
'value' => '',
|
44
|
+
|
45
|
+
'compare' => '=', // 公開相手が未指定の場合
|
46
|
+
|
47
|
+
)
|
48
|
+
|
49
|
+
)
|
50
|
+
|
51
|
+
);
|
52
|
+
|
53
|
+
$the_query = new WP_Query( $args );
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
### 改善したソースコード
|
58
|
+
|
59
|
+
しかしそもそも自分が編集した記事は当然自分が閲覧できるようにしたいわけなので、上記のように検索するのではなく、下記のように「自分が投稿者の場合」という条件を追加したら記事の表示効率が上がるのではないかと考えました。
|
2
60
|
|
3
61
|
|
4
62
|
|
5
63
|
|
6
64
|
|
7
|
-
|
65
|
+
```php
|
8
66
|
|
9
|
-
|
67
|
+
$args = array(
|
10
68
|
|
69
|
+
'meta_query' => array(
|
11
70
|
|
71
|
+
'relation'=>'AND',
|
12
72
|
|
13
|
-
|
73
|
+
array(
|
14
74
|
|
15
|
-
|
16
|
-
|
17
|
-
しかし『target』が空ではなくて、自分のIDがなければ閲覧できない。というイメージです。
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
```ここに言語名を入力
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
$args=array(
|
26
|
-
|
27
|
-
'
|
75
|
+
'relation'=>'OR',
|
28
76
|
|
29
77
|
array(
|
30
78
|
|
31
|
-
'key'
|
79
|
+
'key' => 'target',
|
32
80
|
|
33
|
-
'value'
|
81
|
+
'value' => get_current_user_id(),
|
34
82
|
|
35
|
-
'compare' => 'LIKE',
|
83
|
+
'compare' => 'LIKE', // 自分が公開相手に指定されてる場合
|
36
84
|
|
37
|
-
'type'
|
85
|
+
'type'=>'NUMERIC'
|
38
86
|
|
39
87
|
),
|
40
88
|
|
41
89
|
array(
|
42
90
|
|
43
|
-
'key'
|
91
|
+
'key' => 'target',
|
44
92
|
|
45
|
-
'value'
|
93
|
+
'value' => '',
|
46
94
|
|
47
|
-
'compare' => '=',
|
95
|
+
'compare' => '=', // 公開相手が未指定の場合
|
48
96
|
|
49
|
-
),
|
97
|
+
),
|
50
98
|
|
51
|
-
|
99
|
+
),
|
52
100
|
|
53
|
-
|
101
|
+
array(
|
54
102
|
|
103
|
+
'key' => 'author',
|
104
|
+
|
105
|
+
'value' => get_current_user_id(),
|
106
|
+
|
107
|
+
'compare' => '=', // 自分が投稿者の場合
|
108
|
+
|
109
|
+
)
|
110
|
+
|
111
|
+
)
|
112
|
+
|
55
|
-
);
|
113
|
+
);
|
56
114
|
|
57
115
|
$the_query = new WP_Query( $args );
|
58
116
|
|
59
117
|
```
|
60
118
|
|
61
|
-
|
119
|
+
そこでお聞きしたいのですが、「改善したソースコード」のように条件を追加すると、効率は上がりますか?それととも下がりますか?
|
62
120
|
|
63
121
|
|
64
122
|
|
65
|
-
|
123
|
+
理由や根拠も含めてお聞かせいただけるとありがたく思います。
|
66
124
|
|
67
|
-
・「all」なら全員閲覧できる。
|
68
|
-
|
69
|
-
・「lim」なら一部だけ(『target』にあるIDの人だけ)閲覧できる。
|
70
|
-
|
71
|
-
・「no」なら投稿者だけ閲覧できる。
|
72
|
-
|
73
|
-
|
125
|
+
よろしくお願い致します。
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
このように『target』と『public』など条件が2つあるとき、上記の $args=array() はどのように書けばいいのでしょうか?
|
1
可読性の向上
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,7 +62,15 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
+
つまり、『public』が
|
66
|
+
|
67
|
+
・「all」なら全員閲覧できる。
|
68
|
+
|
65
|
-
|
69
|
+
・「lim」なら一部だけ(『target』にあるIDの人だけ)閲覧できる。
|
70
|
+
|
71
|
+
・「no」なら投稿者だけ閲覧できる。
|
72
|
+
|
73
|
+
という条件も追加したいイメージです。
|
66
74
|
|
67
75
|
|
68
76
|
|