2014-07-03 21 views
1

所以我有這個PHP文件,它有一個叫做文件的Ajax調用,讓我們說test.php。這test.php的需要兩個文件,這是他們怎麼叫:需要PHP文件時找不到404文件

require('../folder1/folder2/header.php'); 
require('../wp-blog-header.php'); 

所以,如果我刪除代碼的第二行,但只要我添加工作得很好,但第二行就沒有更長的作品,在控制檯中的網絡選項卡給我404。

wordpress文件和folder1在同一個目錄中。

+0

應該是'需要(」 ../ WP-博客頭.php');' – Darren

+0

我的不好,它實際上是需要('../ wp-blog-header.php');在原來的。 – WarSensation

+0

你能給我'dirname(__ FILE __);'並打開error_reporting - error_reporting(E_ALL); ini_set('display_errors',1);' – Darren

回答

4

也許你會在WordPress AJAX的錯誤的方式。試試下面的代碼不需要包括任何file.In functions.php文件

add_action('wp_ajax_nopriv_YOUR-FUNCTION','YOUR-FUNCTION'); 
add_action('wp_ajax_YOUR-FUNCTION','YOUR-FUNCTION'); 

function YOUR-FUNCTION(){ 
    // YOUR CODE 
    die(); 
} 

和客戶端的Ajax調用應如下:

var ajaxurl = '<?php echo site_url();?>/wp-admin/admin-ajax.php'; 
$.ajax({ 
    type: "POST", 
    url : ajaxurl, 
    data : { action :'YOUR-FUNCTION',var1:your-val,var2:your-val}, 
    success:function(data){ 
     // your success call 
    } 
}); 
+0

謝謝!我設法解決了這個問題。 – WarSensation

1

如果你收到一個404錯誤,這意味着這不是一個正在發生的PHP錯誤。其中一個文件(可能爲wp-blog-header.php)正試圖將您重定向到另一個不再可用的頁面(例如:此腳本將使用header('Location: ...')將您重定向到不可用的頁面)。

檢查文件的內容並查找此類型的重定向。包含錯誤不會給您帶來404警報,它應該帶來FATAL ERROR

Additionaly ...

時務必使用require()功能,儘量使用絕對路徑。當您使用第三方代碼時,相對路徑會導致很多問題。 使用

require(__DIR__.'/../wp-blog-header.php'); 

,而不是

require('../wp-blog-header.php'); 
+0

o.O你剛剛在我的答案後添加了路徑問題。無論如何,很好的更新。 :) –

+0

@AbhineetVerma,是的!我不知道我是否應該引用,所以我沒有。但目標是提高答案背後的知識,因爲更好的方式是向程序員顯示一個錯誤是阻止他再次這樣做。謝謝你的評論。 ;) – BigBlast

2

首先,不要使用相對路徑(S)。 看看這些問題,他們很好地描述路徑。

,不要使用wp-blog-header.php就這樣。如果你真的想WordPress的環境,你test.php的文件中工作,然後它會更好,如果你或者編寫代碼爲插件function.php編寫代碼。

參考鏈接

wp-blog-header.php你應該在你的代碼需要的任何文件之前被調用。這樣Wordpress環境也加載到該文件中。否則,Wordpress功能將無法正常工作。

檢查index.php裏面的WordPress的根文件夾。 wp-blog-header.php是加載Wordpress環境所需的第一個文件。

的index.php(在WordPress的根文件夾)

<?php 
/** 
* Front to the WordPress application. This file doesn't do anything, but loads 
* wp-blog-header.php which does and tells WordPress to load the theme. 
* 
* @package WordPress 
*/ 

/** 
* Tells WordPress to load the WordPress theme and output it. 
* 
* @var bool 
*/ 
define('WP_USE_THEMES', true); 

/** Loads the WordPress Environment and Template */ 
require(dirname(__FILE__) . '/wp-blog-header.php'); 
+0

@ downvoter。請提及downvote的原因。請不要爲了讓答案降低而降低行動。 –