質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

2150閲覧

WP:会員が記事を投稿でき、記事下部に予め登録した作品情報を挿入したい

Yukinonaka

総合スコア7

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2016/04/25 03:09

編集2016/04/26 11:48

###前提・実現したいこと
会員が記事を投稿でき、記事下部に予め登録した作品情報を挿入したい。

###実現したいこと(出来た)
・会員がカスタム投稿タイプで作品情報を自由にいくつでも登録できるようにする。
(プラグインCustom Post Type UIでカスタム投稿タイプ「sakuhin」を作成)
・登録したものを通常投稿で選択することができ、記事に情報を挿入することができる。(例:店舗情報のようなもの)
(プラグインAdvanced Custom Fieldsで、フィールドタイプを「投稿オブジェクト」、投稿タイプをカスタム投稿名「sakuhin」にして通常投稿で選択出来るようにし、各項目の情報をタグで呼び出しした)

###実現したいこと(出来ない)
・会員それぞれがカスタム投稿で作品情報を登録できるので、他の会員が見たり編集したりしない様には出来たのですが、通常投稿で挿入する作品情報を選択するとき、他会員の情報も選択できてしまう。
・自分が作成したカスタム投稿(作品情報)だけを選択出来るようにしたい。

ここまではネット上で調べ出来たのですが、以上のことがどうしても出来ません。
このやり方も我流なので、これより他に良い方法があればご教授願います。
足りない情報があれば追記致しますので宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

このあたりに必要そうな要素が散らばっています。うまく構成すれば望まれる挙動に近づくと思います。

【Post Object Query By Author - ACF Support】
https://support.advancedcustomfields.com/forums/topic/post-object-query-by-author/

【ACF | acf/fields/post_object/query】
https://www.advancedcustomfields.com/resources/acf-fields-post_object-query/

投稿2016/04/25 03:43

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yukinonaka

2016/04/26 11:48

ご返答ありがとうございます。 教えて頂いた参考URLを読んでみてやってみましたが、 通常投稿の「投稿オブジェクト」が何もない空欄の状態に変わりました。 function my_post_object_query( $args, $field, $post ) { $current_user = wp_get_current_user(); $user_id = $current_user->ID; $args['author']=$user_id; $args['authors']=$user_id; $args['post_type']="sakuhin"; return $args; } add_filter('acf/fields/post_object/query/name=sakuhin', 'my_post_object_query', 10, 3); ここからカスタマイズすると思うのですが分かりませんでした。 大変恐縮ですが、具体的なご教授を頂けないでしょうか。
kei344

2016/04/26 12:07

コードは問題ないと思うのですが、会員としてログインをして、その会員の記事をご覧になっていますか? ちなみに参考記事は下記のように管理者を区別しています。 if ( !current_user_can( 'manage_options' ) ) {} else {}
Yukinonaka

2016/04/28 10:14

会員の記事をご覧になるとはどういった意味でしょうか? 会員が通常記事を投稿する時に、投稿オブジェクトの選択欄(カスタム投稿で登録した作品情報)が選択出来ない(表示されない)ので投稿すら出来ないので確認ができないのですが 最初:会員でログインしてカスタム投稿で作品情報をいくつか登録し、デフォルト投稿の投稿オブジェクトから作品情報を選ぶ段階で、他の会員が追加した作品情報が選択出来る コードを挿入後:会員でログインしてカスタム投稿で作品情報をいくつか登録し、デフォルト投稿の投稿オブジェクトから作品情報を選ぶ段階で、何もない空欄の状態 ・Advanced Custom Fieldsのフィールドタイプ、投稿オブジェクトのフィールド名は「sakuhin」です。 宜しくお願いします。
kei344

2016/04/28 11:18

> 会員の記事をご覧になる 管理画面へのログインが、管理者でなく会員の状態で、通常記事の投稿画面を確認すると言うことです。 > 何もない空欄の状態 記事が見つからなかった( $argsでの絞込みがうまく指定できていない)可能性があります。 ACF を入れた環境が手元にないため、具体的な解決方法を提示できるわけではありませんが、自分なら以下のことを試します。 ・「$args['authors']=$user_id;」を外してみる。 ・name と key が別々に設定できると思うのですが、「acf/fields/post_object/query/key=sakuhin」にしてみる。 ・my_post_object_query の中で var_dump() で $args が何を渡しているか精査する。
Yukinonaka

2016/05/02 09:13

> 会員としてログインをして、その会員の記事をご覧になっていますか? はい、管理者で変更を行いつつ、別のブラウザを使い会員でログインして投稿やチェックをしています。 ・single.phpに<?php var_dump( $my_post_object_query ); ?>を追加し、投稿オブジェクトを何か選択して投稿した場合と、してない場合で表示してみましが、どのような状態でもNULLになりました。 ・$args['authors']=$user_id;を削除した場合、投稿オブジェクトは空欄。さらにnameをkeyに差し替えても同じ(ver dump:NULL) ・nameをkeyに差し替えた場合、投稿オブジェクトは選択出来るようになったが、他会員のものも混ざる最初の状態(ver dump:NULL) NULLになるということは、記述が間違っているということでしょうか。他の引数$args,$field,$user_idでもNULLになりました。 宜しくお願いします。
kei344

2016/05/02 10:33

> single.phpに<?php var_dump( $my_post_object_query ); ?>を追加し my_post_object_query の中で var_dump()をしなければあまり意味が無いと思います。(そもそも $my_post_object_query という変数はないはず) また、関数 my_post_object_query は functions.php に書かれていますか?もしかして single.php に書かれていますか?
Yukinonaka

2016/05/06 02:31

・var_dumpについては調べて自分なりにしてみたのですが間違った使い方をしていました。 my_post_object_queryの中でvar_dump()で$argsが何を渡しているのか精査するにはどのようにどこで記述すれば確認できるのでしょうか? ・上記に書いたfunctonから始まるmy_post_object_queryはfunction.phpに書いています。 宜しくお願い致します。
Yukinonaka

2016/05/11 05:30

解決しました。長々とありがとうございました。 ポストタイプとフィールド名を同じにしていました。
kei344

2016/05/11 05:41

解決されたようでよかったです。そういえば WordPress は名前かぶりが問題になることが結構ありますよね。お役に立てませんでしたが知見を得ることが出来ました、こちらこそありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問