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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

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回答

2018閲覧

node.jsでwordpressの便利関数を使う

omusoba

総合スコア29

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WordPress

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

PHP

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

JavaScript

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

0グッド

0クリップ

投稿2016/07/18 03:26

こんにちは。
現在さくらのクラウドでwordpressのネットサービスを作成しているのですが、同じサーバーのnode.jsで作成しているシステムとの連携を行っております。
本来であれば中国でリリースするため、中国のサーバーで行いたかったのですが、諸事情につき日本のさくらのクラウドで行っております。

そこで問題が起こったのは、wordpress側でDBの操作を行う際はwordpressのダッシュボードのタイムゾーンから中国の現在時間で処理を行えるのですが、node.jsからDB操作を行う場合、サーバーが日本側なので日本時間での更新となりどうしても1時間の時差の誤差が出てしまいます。

今後、サーバーを移行して中国に置く可能性もあり、不用意に移動時のnode.jsの書き換えは極力減らしたいため、node.js側でごり押しで時間を1時間ずらしてから処理をすることを可能な限り避けたいと思っております。
なので【node.jsでwordpressのダッシュボードのタイムゾーン設定を基準に現在時間取得】を行いたいと思っております。

1つ目の案としてはrequestモジュールを使ってwordpress内に作成したphpファイルを起動して取得する方法(一応テストでローカルでのテストでpluginディレクトリ内に新しくtimezone_response.phpファイルを作成)

javascript

1//node.js側のコード(wordpressから現在時刻をwordpressのタイムゾーン設定基準で呼び出す) 2 3var request = require('request'); 4 5exports.timezone_test01 = function(){ 6 7 var setting = 'WP' 8 //POST送信オブジェクト生成 9 var options = { 10 uri: 'http://localhost/wordpress/wp-content/plugins/timezone_response.php', 11 form: {setting:setting}, 12 json: true 13 }; 14 15 //送信&レスポンス確認 16 request.post(options, function(error, response, body){ 17 if (!error && response.statusCode == 200) { 18 console.log(response); 19 } else { 20 console.log('error: '+ response.statusCode); 21 } 22 23 }); 24}; 25

php

1if(isset($_POST['setting'])){ 2 if($_POST['setting']='WP'){ 3 $now_time = date_i18n("Y-m-d H:i:s"); 4 echo json_encode($now_time); 5 } 6};

と、さっくり作ってみたところ案の定404エラーをnode.jsが吐き出す結果に。
すこし調べてみるとchild_processモジュールが使えるのではないかと思ったのですが、node.js自体まだ経験が浅いのでマニュアルを見てもよくわからず仕舞いでした。

もし、何か良い方法などがあればご教授いただければと思います、どうかよろしくお願いします。

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

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

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

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

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

guest

回答2

0

自己解決

DBではなく、nodejs側のモジュールで設定振り分けを行うことにしました。
http://qiita.com/taizo/items/3a5505308ca2e303c099

投稿2016/07/19 02:12

omusoba

総合スコア29

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

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

0

setlocale は使えませんか?
どっちみち文章も中国語対応しないといけないんでしょうし。

投稿2016/07/18 03:48

Zuishin

総合スコア28660

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

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

omusoba

2016/07/18 05:29

ローカライズはwordpressでmoファイルを作成しているので文章のローカライズは問題ありません。 ただ、DBが日本なのでどうしてもnode.jsでDBを触る時に日本のタイムゾーン扱いになっているのをどうにかしたくて...setlocateでタイムゾーン指定の時刻を出すことができるのですか?
Zuishin

2016/07/18 05:31

LC_TIME や LC_ALL でできると思うのですが、試してみてください。
omusoba

2016/07/18 07:00

これらを考察するに、wordpressの便利関数を使うことはできないということでしょうか? ないであれば最終手段としてDBのタイムゾーン設定をいじるかnode.js側で時間をずらしてからDB操作をしようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問