2016-07-29 21 views
0

我有問題使用get_post,get_post_meta,sanitize_text_field, 和PHP文件中的任何其他函數來生成XML代碼。 我檢查了所有帖子,但我沒有找到任何東西,所以我需要問。 的事情是我需要做一個飼料XML導出所有自定義帖子從我的數據庫在WordPress中,基本上我只是連接到數據庫並獲取所有信息使用(mysql_query),這是我使用的基本代碼,由WY我之前而不是在WordPress的數據庫中使用,是的Joomla DB:不能使用get_post(),get_post_meta()和另一個函數

CODE:

<?php header('Content-type: text/xml; charset="utf-8"', true); 

// Set the database access information as constants: 

$host = "any"; 
$dbuser = "any"; 
$pass = "any"; 
$database = "any"; 

$linkID = mysql_connect($host, $dbuser, $pass) or die("No se puede conectar  al servidor WEB"); 
mysql_select_db($database, $linkID) or die("No se puede encontrar la BD en el Servidor"); 
mysql_set_charset("utf8"); 

$query = sprintf("SELECT ID, post_author as autor, post_title as titulo,  post_content as descripcion, post_name as urlamigable FROM database WHERE post_status = '%s' AND post_type = '%s'", mysql_real_escape_string($post_status), mysql_real_escape_string($post_type)); 

$resultID = mysql_query($query, $linkID) or die("NO se pudo ejecutar la consulta o no hay resultados que mostrar."); 

echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; 
echo "<node>\n"; 
echo $query; 

// $homeland_price = sanitize_text_field(get_post_meta($row['ID'],  'post_meta_key', true)); 

for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++) 
{ 
    $row = mysql_fetch_assoc($resultID); 
    echo "<node1>\n"; 

     echo "<ID>" .$row['ID']. "</ID>\n"; 
     echo "<autor>" .$row['autor']. "</autor>\n"; 

// $titulo = sanitize_text_field($row['titulo']); 
// <![CDATA[$row['titulo']]]> $titulo = esc_attr($row['titulo']); 

     echo "<titulo>" .$row$['titulo']. "</titulo>\n"; 
     echo "<descripcion>" .$row$['descripcion']. "</descripcion>\n"; 

    echo "</node1>\n"; 
} 
mysql_free_result($resultID); 

echo "</node>\n"; 
exit(); 
?> 
在這種情況下,ID和AUTOR場

是INT數並沒有問題,但TITULO和DESCRIPCION字段文本字段和我不能得到真正的價值,甚至相同的代碼,我用在joomla <![CDATA[" . $row['titulo'] . "]]>不工作,並得到錯誤。 SO爲什麼我嘗試使用workpress附帶的功能來處理帖子,但是當我嘗試使用它總是出現錯誤,如「致命錯誤:調用/ public_html/feedxml中的未定義函數sanitize_text_field()」。 40線上的PHP「

我也嘗試使用」include「或」require「或」require_once「包含文件在哪裏,但不能工作,甚至表示同樣的錯誤。

爲什麼我不知道現在我能做些什麼來使用這個功能。

+0

你需要運行它裏面的WordPress,你至少應該要求WP-load.php – Ianis

+0

Lanis你好,對不起,請,你是什麼意思與「內部wordpress」,我運行文件,例如在這個方向(/home/my-account/public_html/feedxml.php),但即使我改變目錄很多時間,例如(/ home/my-account/public_html/wp-includes/feedxml.php)並得到相同的錯誤。 – Orlymach

+0

我試着包含許多文件和目錄,就像你之前評論過的一樣,「require_once('../../wp-load.php');」或者包含像「include('/home/my-account/public_html/wp-load.php');」這樣的完整地址,或者包括使用所有組合的目錄並且得到相同的錯誤。此頁面包含以下錯誤: 第2行第1列出現錯誤:文檔末尾的額外內容 下面是頁面渲染到第一個錯誤。 – Orlymach

回答

0

請儘量在你正在該文件wp-load.php ......像

require_once('../../../wp-load.php'); 
+0

嗨沙菲,謝謝你的答案,但我做了使用require,require_once或包括,如你所說,但沒有,得到相同的錯誤,此頁面包含以下錯誤: 錯誤第2行第1列:額外內容在文檔末尾 下面是頁面渲染到第一個錯誤。即使我嘗試添加例如/ home/my-account/public_html/wp-includes /的完整目錄,但是沒有找到我嘗試使用的功能,不理解。 – Orlymach

+0

你是在插件裏面使用的嗎? – Shafi

+0

沒有shafi,完整的代碼就是你在帖子中看到的所有內容,我使用它從url運行,例如mydomain.com/feedxml.php,並獲得一個包含所有resutinformación的xml代碼。 – Orlymach