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

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

ただいまの
回答率

90.61%

  • WordPress

    6998questions

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

  • jQuery

    6560questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • Ajax

    1071questions

    Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

WordpressでのAjaxの使い方がわかりません。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 415

scor1215

score 4

Wordpressでiframe内にAjaxを導入しようと思っています。
そこで、Ajaxでpostしようとしたのですが、わかりやすい書籍やサイトが見つかりません。

テーマをOnePressにして子テーマでfunction.phpなどを設定しているのですが、わかりやすい書籍やサイトなどがありましたら教えていただけると幸いです。

このサイトを参考にしましたが、それぞれのコードをどこに入力すればいいのかわかりませんでした。
https://nskw-style.com/2014/wordpress/ajax.html

回答よろしくお願いいたします。

Ajax自体初めてで、iframeというプラグインを利用して作成したiframeの中に次のようなjavascriptを設定しました。
最初のjQueryで単語を渡すことはできたのですが、そこからpostでサーバーから文章を取ってこようとするとうまくいきません。確認用に置いたアラートも起動しませんでした。

function Change(words){
jQuery('#exp-frame' , parent.document).contents().find('#exp').text(words);    //親の子フレームに情報を送る。

    jQuery.post("ホームページのURL/wp-admin/admin-ajax.php",
        { word: words },
        function(data, textStatus,jqXHR) {
            alert('start');
            if( textStatus == 'success') {
                jQuery('#exp-frame' , parent.document).contents().find('#exp').text('Change!') ;
            } 
        }        
    );
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2017/09/18 17:02

    どのようなiframeにどのようななAjaxを導入しようとしているのか具体的なコードを提示した方が回答が得やすいかと思います。

    キャンセル

  • Tak1016

    2017/09/18 18:17 編集

    今までAjaxをやったことがあって、Ajaxは知ってるけど、Wordpressになった途端にやり方がわからないのか。そもそもAjax自体初めてなのか。

    キャンセル

回答 1

checkベストアンサー

+2

Wordpressでiframe内にAjaxを導入しようと思っています。

どういうことを実装しようとしているかが読み取れませんが、iframe内/外でドメインが同じであればそう大きな問題はないでしょう。(ドメインが違う場合は結構面倒です)

WordPressサイト上からのAjaxであれば特殊なテーマでない限りjQueryが使えるので「jQuery Ajax done fail」あたりで検索して使い方を見つけてみてください。

【ajax():ajaxメソッド(成功はdone、失敗はfail)による非同期通信 - jQuery無双】
http://karashidaimyojin.com/jquery/ajax-ajax/

【jQueryのajaxの書き方 – エクスト スタッフブログ】
http://blog.ext.ne.jp/?p=2038


わかりやすい書籍やサイトが見つかりません。

もう手元に数冊入門書があると仮定して回答します。
Webの情報を読む前に、一度本屋で入門書から上級まで何冊か本を買って読むと今後の理解が進みます。とりあえず最初はわからないことのほうが多いと思いますが、そのうち腑に落ちることも多いはずなのでお勧めします。

【O'Reilly Japan - JavaScript 第6版】
https://www.oreilly.co.jp/books/9784873115733/

【O'Reilly Japan - 初めてのJavaScript 第3版】
https://www.oreilly.co.jp/books/9784873117836/

【改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで | 山田 祥寛 |本 | 通販 | Amazon】
https://www.amazon.co.jp/dp/477418411X

WordPressプラグインを作るつもりがなくても、挙動を知るためには読んでおくと良いこともあります。

【サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル | 宮内 隆行, 西川 伸一, 岡本 渉, 三好 隆之 |本 | 通販 | Amazon】
https://www.amazon.co.jp/dp/4797373520

【エンジニアのためのWordPress開発入門 (Engineer's Library) | 野島 祐慈, 菱川 拓郎, 杉田 知至, 細谷 崇, 枢木 くっくる |本 | 通販 | Amazon】
https://www.amazon.co.jp/dp/4774187062


このサイトを参考にしましたが、それぞれのコードをどこに入力すればいいのかわかりませんでした。

「WordPress側」と書かれているところは、プラグインとして作成するか、functions.php に書きます。
JavaScript側は JavaScriptを実行するところに書きます。

ただ、現在のWordPressであれば、記事中に書かれているように「WP REST API」を使うのがよいでしょう。(記事に書かれているような「WordPress側」の記述が必要ないので)

【WP REST API v2 Documentation】
http://ja.wp-api.org/

【WordPress REST API を試してみる(前編: まずは取得から) | クラウドット株式会社】
http://www.cloudot.co.jp/blog/4731/

【WP REST APIでの情報の取得と表示・使い道について | ソフプラント】
https://www.sofplant.com/blog/tech/wp-rest-api-tips/

【WordPress REST API で、カスタム投稿タイプなどの情報を取得する | Tips Note by TAM】
https://www.tam-tam.co.jp/tipsnote/cms/post9688.html

検索すると WordPress 4.6以前の記事には「別途プラグインのインストールが必要」と書かれていますが、WordPress 4.7 以降はコアに含まれているので必要ありません。また、APIのバージョンが古いこともあります。あくまで処理の流れ(JavaScript部分の書き方など)を参考にされるのが良いと思います。

【WordPress REST APIで投稿の取得から新規投稿を行う | Tips Note by TAM】
https://www.tam-tam.co.jp/tipsnote/cms/post10274.html

【WordPress REST API HTML+jQueryで表示 - WordPress Snippet】
https://tenman.info/labo/snip/archives/9673

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/19 12:31

    丁寧な回答ありがとうございます。
    もう少し勉強してみます。

    キャンセル

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • WordPress

    6998questions

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

  • jQuery

    6560questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • Ajax

    1071questions

    Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。