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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

522閲覧

jsで得た値をphpでupdateしたい

samurai-samurai

総合スコア3

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2023/04/28 05:15

実現したいこと

フォームでセレクトしたものを送信した時にjsで値(value)を取得して、phpにてカスタムフィールドの値として保持したい。

前提

wpでサイト作成をしています。
知識はほぼない初心者です。

発生している問題・エラーメッセージ

Uncaught Error: Call to undefined function update_post_meta() in https://hoge.com/wp-content/plugins/hoge/get-form.php:7

該当のソースコード

/*** 以下htmlにてフォームを作成 ***/

<form name="testform"> <select name="menu62" class="wpcf7-form-control wpcf7-select sel" id="sel" aria-invalid="false"> <option value="hoge01">hoge01</option> <option value="hoge02">hoge02</option> </select> <div onclick="clickBtn1()"> <input type="submit" value="送信"> </div> </form>

/*** 以下テーマのfooter.phpにてクリック時にセレクトのvalueを取得し、get-form.phpへ ***/

<script> function clickBtn1(){ const hoge1 = document.testform.menu62; const num = hoge1.selectedIndex; const str = hoge1.options[num].value; $.ajax({ type: "POST", url: 'https://hoge.com/wp-content/plugins/hoge/get-form.php', data: {"item": str} }); } </script>

/*** 以下get-form.phpへ ***/

<?php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept'); header("Content-type: application/json; charset=UTF-8"); $operate = $_POST['item']; update_post_meta('9999', 'hoge-item', $operate); ### 試したこと ajaxではなく、fetchなど検索して使えそうなものを探して色々試してみましたが根本の部分が違うのではという結論に自分で達し、質問させていただきました。 ### 補足情報(FW/ツールのバージョンなど) こちらでカスタムフィールドに保持した値を次回から呼び出し、一度選択したセレクトの内容を出力しないようにすることが終着点です。

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

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

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

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

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

CHERRY

2023/05/01 01:03

> Uncaught Error: Call to undefined function update_post_meta() in https://hoge.com/wp-content/plugins/hoge/get-form.php:7 hoge/get-form.php で、エラーが出ているようですが、 hoge/get-form.php というのは、ご自身で作成されたプラグイン か php ファイルですか? 公開されているプラグインであれば、プラグイン名を記載していただくか ご自身で製作された場合は、get-form.php のコードを質問に追記していただけないでしょうか。
guest

回答2

0

PHPのファイルを直接実行してもWordPressの関数・クラス・定数は使えません。
WordPressを介してそのPHPが読み込まれないとWordPressの関数・クラス・定数は使えません。
そのPHPをファイルをWordPressが実行するURLを作る必要があります。

最も簡単な方法はwp_ajax_{$action}のアクションフックを使う方法で、単純にコールバックで当該のPHPをincludeするだけでWordPressの関数・クラス・定数を使った処理を行うことができます。

他の選択肢としてはregister_rest_routeを使う方法があります。
wp.apiFetchに備わっているWordPressが用意してくれている認証の仕組みなどを利用しやすいので、WordPressの仕組みに寄り添った作り方をしたいのであればこちらも良い選択です。

投稿2023/05/02 04:46

KazuhiroHatano

総合スコア7802

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

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

0

update_post_metaという関数が、undefined だというメッセージなので、
WordPressのライブラリを読み込んでないのでは?

投稿2023/04/30 10:11

otn

総合スコア84423

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問