2017-06-01 1 views
0

私はWPを使用して1つのAPIを開発しようとしています。使用後にjsonを返すときのエラーrequired_once( "wp-load.php")

ベローが私のテストコードです。

define('WP_USE_THEMES', false); 
    require_once(dirname(__FILE__).'/wp-load.php'); 
    header('Content-Type: application/json'); 
    wp(); 
    $PiBy180 = 0; 
    $arr[0] = array("id"=>1,"name"=>"aaaa"); 
    $arr[1] = array("id"=>2,"name"=>"bbbb"); 
    echo json_encode($arr);die; 

私が郵便配達員でテストすると、以下の出力が表示されます。 wrong-output

しかし、もし私がrequire_onceとコメントしているのであれば、それは私のために働いています。しかし、私は私がajax jsonの応答をretunする前に、いくつかのwordpress関数を呼び出さなければならないので、私はそれが必要です。下のスクリーンショットとコードを確認してください。

define('WP_USE_THEMES', false); 
    //require_once(dirname(__FILE__).'/wp-load.php'); 
    header('Content-Type: application/json'); 
    //wp(); 
    $PiBy180 = 0; 
    $arr[0] = array("id"=>1,"name"=>"aaaa"); 
    $arr[1] = array("id"=>2,"name"=>"bbbb"); 
    echo json_encode($arr);die; 

Required-output

機能を必要とせずに使用WP機能をロードする方法があります。プロジェクトのルートフォルダにカスタムファイルを追加しました。

解決策をご提案ください。

+1

ワードプレスはevalを使用していません。最初のケースでの出力は、WordPressのインストールがウイルスに感染していることを意味します。 –

+0

@KAGGDesign私は解決策とその理由を得た。そのshow eval wp-load.phpエコーを持つ他のファイルをロードし、ajaxレスポンスでエコーを一回行うことができます。wp-load.phpを削除し、データベースからコアデータベースを取得してデータにアクセスします。 – Jalpesh

+0

あなたのサイト感染しています。 WordPressのコード全体にevalはありません。 –

答えて

0

最後に私は解決策を得ました。

私は他の多くのファイルが含まれており、彼らはが不要な出力を返すので、ちょうどそれのbecuaseをエコー持ったファイルのwp-load.phpファイルことがわかりました。だから最終的に私はコアのPHP接続を作成し、データベースからデータにアクセスし、それは私のために働く。

ここに私のコードです。

ini_set("display_errors", 0); 

    $host='localhost'; 
    $user='testuser'; 
    $password='testpass'; 
    $db='testdb'; 
    $con = mysql_connect($host,$user,$password) or exit("Connection Error"); 
    $connection = mysql_select_db($db, $con); 
    $query = "SELECT * FROM orders where customer_mail like '%".$_GET['jobs']."%' ORDER BY id DESC;"; 
    $orderList = mysql_query ($query) or exit("The query could not be performed"); 

誰かを助けるかもしれない。

関連する問題