サポート » 使い方全般 » 埋め込みページにWPのデータを渡したい

  • 解決済 ryuna

    (@ryuna)


    現在運営しているWordPressのサイト内に、自作したブラウザゲームを設置したいと思っております。

    ゲームはCocos2d-htmlというゲームエンジンを使い、javascriptで作成しています。
    このゲームのページは同じサーバ内のwp-contentの配下に存在していて、とある固定ページに埋め込んで表示しています。
    埋め込みにしている理由は、PC画面など大きい画面であれば問題無いのですが、スマホなど画面が小さいデバイスの場合は別リンクからそのページのみ表示できるようにして全画面表示したいからです。
    また、サイトは完全ログイン制になっており、ゲームをプレイする際はすでにサイトにログインしている状態になります。

    ここで本題なのですが、WordPressにログインしているユーザIDや名前をゲーム内で使用したいと思っています。
    以下の様にIDや名前を返すショートコードを作ってみたのですが、埋め込みページでは使用できないのか上手く行きませんでした。

    <p id="player_id" hidden>[作成したショートコード]</p>

    また、埋め込みページに直接PHPで書いてみてもやはりダメでした。

    <?php global $current_user; ?>
    <p id="player_id" hidden><?php echo $current_user->ID; ?></p>

    もし埋め込みページにWordPressのデータを渡す方法があれば、是非ご教授頂きたいと思っております。
    以上、宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • manbo

    (@manbo)

    埋め込みページというのが良く分かりませんが、恐らくこのような事かと…
    wordpress関数を外から使うにはwp_load.phpを読み込む

    尚、global変数の$user_IDを使ってユーザーIDを取得することもできます。

    こんにちは。page.phpには以下のような形で埋め込まれていると仮定して予想してみます。

    qiita.com/kawai_norimitsu/items/bb2eacf2c6b602683b70

    上記のようにbody内にjsしかなくjsの画面内にwpから取得した値を表示する際は
    wp関数(php)からjsに値を渡す必要がありますが
    こういったことでしょうか。

    やり方は「phpからjavascriptに変数を渡す」で検索すると色々出てくると思います。

    埋め込みページに直接PHPで書いてみてもやはりダメでした。

    上記の状況であればデベロッパーツールでhtmlソースを確認した際には
    データが読み込まれているのではないでしょうか。

    以上予想ですが違っているようでしたら詳しい状況を書けるようでしたら
    また何か解れば書かせていただきます。

    • この返信は6 日、 13 時間前に  hokutonojikei さんが編集しました。理由: リンク追加しました

    manbo様

    教えて頂いたやり方で無事解決できました。
    ありがとうございます。

    言葉足らずでしたが、埋め込みページとは自前で作成したWordPressとは全くつながりのないページをWordPressサイトの記事の中に<object>タグで埋め込むという事を指していました。

    hokutonojikei様

    manbo様の方法で解決できたので試していないのですが、WordPressの記事に埋め込まれる方のページはWordPressサイトの存在を認知出来ない為、そもそもどこからデータを取得するのかという事を指定するのは難しいかと思いました。
    私は最初にURLの後ろにパラメータとして渡そうかと思いましたが、これだとセキュリティ上問題がある(埋め込みページを別タブで開いてパラメータを変える事で別のプレイヤーとしてゲームにログイン出来てしまう)と思って止めたのですが、hokutonojikei様が教えてくださったやり方だと、結局はこういう事をしないといけないのかな、と浅はかではありますが思いました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。