teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

修正

2019/02/23 22:11

投稿

maronica
maronica

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- Wordpress記事検索方法で、条件が2つあときはどうしたらいですか?
1
+ Wordpress記事を表示す効率につ
body CHANGED
@@ -1,39 +1,63 @@
1
+ ### 質問したいこと
1
- 記事を公開するユーザーを限定したいんでけど、条件が他にもあときの書き方につ教えてほしす。
2
+ Wordpressで記事を公開するユーザーを限定する機能を作っていす。
2
3
 
4
+ 次の「現状のソースコード」よりも、「改善したソースコード」の方が、記事の表示効率はいいでしょうか?
3
5
 
4
- ### 質問
6
+ ### 現状のソースコード
7
+ カスタムフィールド『target』に自分のIDがあるか、または『target』が空のときは記事が閲覧できる。
5
- 今は下記のソースコードになってます。
8
+ というコードを書います。
6
9
 
10
+ ```php
11
+ $args = array(
12
+ 'meta_query' => array(
13
+ 'relation'=>'OR',
14
+ array(
15
+ 'key' => 'target',
7
- カスタムフィールド『target』に自分のIDがあるか、または空のときは記事が閲覧できる。
16
+ 'value' => get_current_user_id(),
17
+ 'compare' => 'LIKE', // 自分が公開相手に指定されてる場合
18
+ 'type'=>'NUMERIC'
19
+ ),
20
+ array(
21
+ 'key' => 'target',
22
+ 'value' => '',
23
+ 'compare' => '=', // 公開相手が未指定の場合
24
+ )
25
+ )
26
+ );
27
+ $the_query = new WP_Query( $args );
28
+ ```
29
+ ### 改善したソースコード
30
+ しかしそもそも自分が編集した記事は当然自分が閲覧できるようにしたいわけなので、上記のように検索するのではなく、下記のように「自分が投稿者の場合」という条件を追加したら記事の表示効率が上がるのではないかと考えました。
8
31
 
9
- しかし『target』が空ではなくて、自分のIDがなければ閲覧できない。というイメージです。
10
32
 
11
- ```ここに言語名を入力
33
+ ```php
12
-
13
- $args=array(
34
+ $args = array(
14
- 'meta_query' => array(
35
+ 'meta_query' => array(
36
+ 'relation'=>'AND',
37
+ array(
38
+ 'relation'=>'OR',
15
39
  array(
16
- 'key' => 'target',
40
+ 'key' => 'target',
17
- 'value' => get_current_user_id(),
41
+ 'value' => get_current_user_id(),
18
- 'compare' => 'LIKE',
42
+ 'compare' => 'LIKE', // 自分が公開相手に指定されてる場合
19
- 'type' => 'NUMERIC'
43
+ 'type'=>'NUMERIC'
20
44
  ),
21
45
  array(
22
- 'key' => 'target',
46
+ 'key' => 'target',
23
- 'value' => '',
47
+ 'value' => '',
24
- 'compare' => '=',
48
+ 'compare' => '=', // 公開相手が未指定の場合
25
- ),
49
+ ),
26
- 'relation' => 'OR'
27
- ),
50
+ ),
51
+ array(
52
+ 'key' => 'author',
53
+ 'value' => get_current_user_id(),
54
+ 'compare' => '=', // 自分が投稿者の場合
55
+ )
56
+ )
28
- );
57
+ );
29
58
  $the_query = new WP_Query( $args );
30
59
  ```
31
- ご質問したいのこれに『public』というカタムフィドの条件追加する方法で
60
+ そこでお聞きしたいのですが「改善したソーードように条件追加すると、効率は上がりまか?それととも下がりますか?
32
61
 
33
- つまり、『public』が
34
- ・「all」なら全員閲覧できる。
35
- ・「lim」なら一部だけ(『target』にあIDの人だけ)閲覧できる
62
+ 理由や根拠も含めてお聞かせいただけるとありがたく思います
36
- ・「no」なら投稿者だけ閲覧できる。
37
- という条件も追加イメージです。
63
+ よろくお願致します。
38
-
39
- このように『target』と『public』など条件が2つあるとき、上記の $args=array() はどのように書けばいいのでしょうか?

1

可読性の向上

2019/02/23 22:11

投稿

maronica
maronica

スコア16

title CHANGED
File without changes
body CHANGED
@@ -30,6 +30,10 @@
30
30
  ```
31
31
  ご質問したいのは、これに『public』というカスタムフィールドの条件も追加する方法です。
32
32
 
33
+ つまり、『public』が
34
+ ・「all」なら全員閲覧できる。
33
- つまり、『public』がall」なら全員閲覧できて、「lim」なら一部だけ(targetにあるIDの人だけ)、「no」なら投稿者だけ。という条件も追加したいイメージ
35
+ 「lim」なら一部だけ(targetにあるIDの人だけ)閲覧きる
36
+ ・「no」なら投稿者だけ閲覧できる。
37
+ という条件も追加したいイメージです。
34
38
 
35
39
  このように『target』と『public』など条件が2つあるとき、上記の $args=array() はどのように書けばいいのでしょうか?