不能使用get_post(),get_post_meta()和其他函数

时间:2016-07-29 11:54:22

标签: php xml wordpress loops

我在使用get_post,get_post_meta,sanitize_text_field时遇到问题, 和php文件中的任何其他函数生成XML代码。 我在这里检查了所有帖子,但我没有发现什么,所以我需要问。 问题是我需要制作一个feed xml来导出我在wordpress中的数据库中的所有自定义帖子,基本上我只是连接到数据库并使用(mysql_query)获取所有信息,这是我使用的基本代码,由wy,我之前使用但不是在wordpress DB中,在Joomla DB中使用:

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'] . "]]>中使用的相同代码不工作,得到错误。 那么为什么我尝试使用workpress附带的功能来处理帖子,但是当我试图使用它时总是出现“致命错误:调用未定义函数 sanitize_text_field()”中的错误第40行的“public_html / feedxml.php”

我还尝试使用“include”或“require”或“require_once”来包含这些函数的文件,但是也没有用,甚至说同样的错误。

为什么我现在不知道如何使用这个功能。

1 个答案:

答案 0 :(得分:0)

请尝试将wp-load.php包含在您正在使用的文件中......例如

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