Wordpressプログラミングの質問です。すでに公開されている特定の投稿記事のカスタムフィールドに、値を直接書き込むPHPスクリプトを書きたいです。管理画面内から出なく、外部からそのPHPスクリプトにアクセスすることで実現したいと思っています。

例:
1)投稿記事A(公開済み)
2)ttp://example.com/xxx.php(Wordpress内のスクリプト)にアクセス
3)上記2)の時点で投稿記事Aに「キー=ABC,値=123」というカスタムフィールドを生成。
という流れです。
もし、すでに、「キー=ABC,値=123」というカスタムフィールドがあった場合は、上書きされるようにしたいです。

良いサンプルなどありましたら是非お教え下さい。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/09/11 04:14:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.2

回答回数595ベストアンサー獲得回数351

ポイント400pt

XMLRPCでも実装可能ですが、今回の質問の場合はWordPressの関数を使用してもっと簡単にできます。
※xmlrpc.phpは、外部から新規投稿、編集などを実行したい場合に利用するといいです。

// wp-load.phpの読み込み(※相対パスで指定しても大丈夫です。)
require_once('/(※WordPress設置ディレクトリの絶対パス※)/wp-load.php');

update_post_meta(投稿ID, 'ABC', '123');
// 投稿記事Aのidが50の場合、update_post_meta(50, 'ABC', '123');

/* 
 * カスタムフィールドの値を上書きしたいという事は、値は固定ではなく、フォームから
 * 入力した値あるいはスクリプト内で自動生成した値を保存したいのだと思いますが、
 * この場合、値を変数に対して渡すようにします。
 */

/* ~ ここに自動生成のコードあるいは、$_POST変数等で$meta_valに代入 */
update_post_meta(投稿ID, 'ABC', $meta_val);



http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/update_post_meta

※$_POST変数等で受け取る場合は、必ずチェックを行ってから代入するようにします。(許可する文字列以外がある場合は、削除するようにするといいかもしれません。)

※2)の時点でのアクセスを、ユーザーがログインしている場合などに限定する場合は、さらにもう少しコードを追加する必要があります。
何らかの条件があるのでしたら、もう少し詳しく教えてください。

id:kanienoteiou

おお!コードを書いていただいてありがとうございます。
XMLRPCを使って解決できましたが、外部からの投稿である必要は無いので、書いていただいたコードも試してみます。

2012/09/11 04:13:45

その他の回答1件)

id:hirorock No.1

回答回数9ベストアンサー獲得回数0

ポイント100pt

その内容であれば、XMLRPCで実装可能ですね!

http://ja.forums.wordpress.org/topic/663

id:kanienoteiou

ありがとうございます!
勉強してみます!

2012/09/06 23:34:46
id:rouge_2008 No.2

回答回数595ベストアンサー獲得回数351ここでベストアンサー

ポイント400pt

XMLRPCでも実装可能ですが、今回の質問の場合はWordPressの関数を使用してもっと簡単にできます。
※xmlrpc.phpは、外部から新規投稿、編集などを実行したい場合に利用するといいです。

// wp-load.phpの読み込み(※相対パスで指定しても大丈夫です。)
require_once('/(※WordPress設置ディレクトリの絶対パス※)/wp-load.php');

update_post_meta(投稿ID, 'ABC', '123');
// 投稿記事Aのidが50の場合、update_post_meta(50, 'ABC', '123');

/* 
 * カスタムフィールドの値を上書きしたいという事は、値は固定ではなく、フォームから
 * 入力した値あるいはスクリプト内で自動生成した値を保存したいのだと思いますが、
 * この場合、値を変数に対して渡すようにします。
 */

/* ~ ここに自動生成のコードあるいは、$_POST変数等で$meta_valに代入 */
update_post_meta(投稿ID, 'ABC', $meta_val);



http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/update_post_meta

※$_POST変数等で受け取る場合は、必ずチェックを行ってから代入するようにします。(許可する文字列以外がある場合は、削除するようにするといいかもしれません。)

※2)の時点でのアクセスを、ユーザーがログインしている場合などに限定する場合は、さらにもう少しコードを追加する必要があります。
何らかの条件があるのでしたら、もう少し詳しく教えてください。

id:kanienoteiou

おお!コードを書いていただいてありがとうございます。
XMLRPCを使って解決できましたが、外部からの投稿である必要は無いので、書いていただいたコードも試してみます。

2012/09/11 04:13:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません