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

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

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

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

Q&A

解決済

1回答

1046閲覧

wordpress ABSPATH plugins_url() について

naUc

総合スコア36

WordPress

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

0グッド

0クリップ

投稿2020/03/09 05:58

編集2020/03/09 07:13

前提・実現したいこと

wordpressを触り始めてまだ1週間程度です、公式ドキュメントなどを見ながら勉強してます。
現在、wordpressのpluginを作成しております。
ajax通信を起点にplugin内に保存したJSONファイルを読み込み、画面上に非同期処理でファイル内を表示させることが目標です。

困っていること.

ajax実行時に処理するphpファイル内で FileSystem(wp-admin/includes/file.php)を使用するために

require_once(ABSPATH.'wp-admin/includes/file.php');

を1行目に記述したのですが ABSPATHが読み込まないため先に進むことができません。
plugin内の他ファイルでは下記のように記述することで画面上に表示させることができます。

<?php require_once(ABSPATH.'wp-admin/includes/file.php'); $url = plugins_url().'/search-refine/data/search-config.json'; //json読込 if(WP_Filesystem()){ global $wp_filesystem; $json_file = $wp_filesystem->get_contents($url); $json_file = mb_convert_encoding($json_file, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); $json_file = json_decode($json_file,true); } ?>

質問したいこと

ABSPATHはディレクトリのフルパスが代入された定数と聞いておりますが使用条件があるのでしょうか?
formから送信する post送信先ファイル内でABSPATHが定数として変換されない状況です。
また、plugins_url() も使用できない為、理由が知りたいです。

エラーメッセージ

ajaxエラー: Ajax error in voting

参考にしたページ

https://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7_AJAX_%E3%82%92%E4%BD%BF%E3%81%86

補足情報

IDE:PhpStorm
OS:Catalina 10.15.3
サーバー: IDCFクラウド

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

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

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

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

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

guest

回答1

0

ベストアンサー

formから送信する post送信先ファイル内でABSPATHが定数として変換されない状況です。

そのPHPファイルがWordPressから呼び出されていないから定数が入っていないのでしょう。WordPressで使う場合は直接PHPファイルに対してPOSTする設計にはしません。

投稿2020/03/09 07:21

kei344

総合スコア69606

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

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

naUc

2020/03/09 07:43

直接呼び出してしまうから、定数やwordpress特有の関数が使用できないんですね。 ありがとうございます。 FileSystemをpostにて実行したいのですが、 設計の参考になるページあればご提供いただけないでしょうか?
kei344

2020/03/09 07:53

「WordPress プラグイン 作り方」「WordPress プラグイン 作り方 POST」とかで検索してください。
naUc

2020/03/10 08:50

管理画面であれば、admin-ajax.phpに送信する方法を確認できたのですが、 公開ページでajaxを実行する場合もadmin-ajax.phpに送信するのでしょうか?
naUc

2020/03/13 07:56

ありがとうございます。解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問