必要な知識

javascript からワードプレスを呼び出す方法

この記事は、javascript からワードプレスを呼び出す方法を書いています。

例えば、プラグインか何かで大量の処理を行いたいとき。
通常は、タイムアウトで処理途中でサーバーに止められちゃいます。

じゃあ、どうするか。
分割して処理すればいいんです。


javascript から php を呼び出して分割処理させる

post データを全部 XXX したい。
post データを1つづつ処理に渡せばいい。

java で loop を作って loop内で php を呼び出せばいい。

avascript から ワードプレスを呼び出す javascript のひな型

avascript から ワードプレスを呼び出す javascript のひな型です。
0001   :
0002 function wp_call_loop()
0003 {
0004  for(i=0;i<max;i++){
0005   wp_call('edit',postid[i]);
0006  }
0007 }
0008 function wp_call(commad,postid)
0009 {
0010  var URL = '';
0011  URL+= '$url';
0012  URL+= 'wp_xxxx_join.php?'; ← 呼び出す php ファイル
0013  URL+= 'c=compress'+'&'; ← オプション
0014  URL+= 'p='+postid+'&'; ← オプション
0015  
0016  var request = new XMLHttpRequest();
0017  request.open('GET', URL, true);
0018  request.responseType = 'json';
0019  request.addEventListener('load', function (response) {
0020   var data = this.response;
0021   var ans1 = data.c;
0022   var ans2 = data.p;
0023   var ans3 = data.e;
0024  });
0025  request.send();
0026 }
0027 EOM;


呼び出される php ファイル
0001 <?php
0002  // 引数受け取り
0003  if(isset($_GET['c'])){$commd = $_GET['c'];}else{$commd = '';}
0004  if(isset($_GET['p'])){$postid= $_GET['p'];}else{$postid= '';}
0005  
0006  // 処理
0007  if($commd=='a'){
0008   $errms = 'ERROR';
0009  }else{
0010   $errms = 'NORML';
0011  }
0012
0013  // 結果渡し引数
0014  $array = array(
0015     "c" => $commd,
0016     "p" => $postid,
0017     "e" => $errms,
0018    );
0019  // 戻り
0020  header("Content-Type: text/javascript; charset=utf-8");
0021  echo json_encode($array);
0022 ?>

avascript から ワードプレスを呼び出す

javascript から php を呼び出すのは前述の通り。

javascript から ワードプレスを呼び出すっていったべさ。

ワードプレスで設定されているもの、ワードプレスの関数等々を php で使いたい。

こう書きます。
0001 <?php require_once($_SERVER[′DOCUMENT_ROOT′]. ′/wp/wp-load.php′ ); ?>
0002
0003 もしくは
0004
0005 <?php require_once((dirname( __FILE__ ) . ′/wp/wp-load.php′ ); ?>
0006
0007
0008 ( 処理本体 )
0009


処理本体では、ワードプレスのプラグインとかで書くような、そのワードプレスの関数や変数を普通に使えます。

例えば、データベース情報。

0001 <?php require_once($_SERVER[′DOCUMENT_ROOT′]. ′/wp/wp-load.php′ ); ?>
0002
0003 global $wpdb;
0004 global $table_prefix;
0005 echo '<pre>';
0006 var_dump($wpdb);
0007 echo '<pre/>';
0008
0009 echo 'DBNAME='.DBNAME.'
0010 ';

と、なんでもできちゃう。
なので、データベース情報とかワードプレス情報とか閲覧できるとか、ファイルの閲覧等々の機能を入れないように。
(セキュリティーホールになってしまう)


この書き込みがあなたの一助になれば幸いです。

スポンサードリンク

関連記事一覧