###実現したいこと
WordPressを使い、複数のカスタム投稿タイプで、記事の限定公開機能を実現したいです。
前提
記事のカスタムフィールド「allowedusers」に、限定公開相手を入力しています。
たとえば、1さんと2さんが限定公開相手として許可されているケースでは、次のようなユーザーIDの配列が記事の「allowedusers」に入力されます。
array('1','2');
今回ぶつかった問題ですが、記事のカスタム投稿タイプが「service」と「comment」のように複数あるケースです。
発生している問題・エラーメッセージ
下のソースコードをご覧いただきたいのですが、「特定のユーザーが投稿したものについて、カスタム投稿タイプ「service」の限定公開相手に閲覧者自身が含まれているかどうかを判定する」ということはできていると思います。
しかし、カスタム投稿タイプ「service」と「comment」に合わせて、限定公開相手のカスタムフィールドも「service_allowedusers」と「comment_allowedusers」と区別して作らないといけないと思います。
この場合、meta_query でどのように指定したらいいのかわからない、という壁にぶつかってしまいました。
該当のソースコード
php
1$uid = '' // 特定のユーザーが投稿したものについて 2$args = array( 3 'posts_per_page' => 15, 4 'post_type' => array('service', 'comment'), 5 'author' => $uid, 6 // カスタム投稿タイプ「service」の限定公開相手に閲覧者自身が含まれているどうかを判定 7 'meta_query' => array( 8 'relation'=>'OR', 9 array( 10 'key' => 'service_allowedusers', 11 'value' => get_current_user_id(), 12 'compare' => 'LIKE', 13 'type'=>'NUMERIC' 14 ), 15 array( 16 'key' => 'service_allowedusers', 17 'value' => '', 18 'compare' => 'NOT EXISTS', 19 ), 20 array( 21 'key' => 'service_allowedusers', 22 'value' => '', 23 'compare' => '=', 24 ), 25 ), 26 // では、「comment」の分はどうしたらいいのか? 27);
試したこと
自分なりにかなり調べたのですが、複数のカスタム投稿タイプのどちらについても限定公開相手として指定する方法は見当たらず、質問させていただくことになってしまいました。
ご経験のある方からのご意見が頂戴できましたら幸いです。
補足情報(FW/ツールのバージョンなど)
必要な情報かわかりませんが補足としてこまかな点を記載させて頂きます。
仕組みとしては、「service」の記事に「comment」が入るというものです。なので基本的に「service」と「comment」は同じ限定公開相手になります。
たとえば「service」の限定公開相手が1さんと2さんならば、「comment」の限定公開相手も自動的に同じになります。
ただし、途中で「service」の限定公開相手を変更することもありますので、変更後は同様とは限りません。
バージョンについては特筆すべきことはありません。WordPressも随時アップデートしていて最新のものを利用しています。
あなたの回答
tips
プレビュー