我在使用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”来包含这些函数的文件,但是也没有用,甚至说同样的错误。
为什么我现在不知道如何使用这个功能。
答案 0 :(得分:0)
请尝试将wp-load.php
包含在您正在使用的文件中......例如
require_once( '../../../wp-load.php' );