【问题标题】:can´t use get_post(), get_post_meta() and another functions不能使用 get_post()、get_post_meta() 和其他函数
【发布时间】:2016-07-29 11:54:22
【问题描述】:

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

代码:

<?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 字段是整数,没有问题,但 TITULO 和 DESCRIPCION 字段是文本字段,我无法获得真正的价值,即使我在 joomla &lt;![CDATA[" . $row['titulo'] . "]]&gt; 中使用的相同代码也不起作用并得到错误。 所以为什么我尝试使用 workpress 附带的功能来处理帖子,但是当我尝试使用它时总是出现错误,例如“致命错误:调用未定义函数 sanitize_text_field() in /第 40 行的 public_html/feedxml.php"

我还尝试使用“include”或“require”或“require_once”包含此函数所在的文件,但也不起作用,甚至说同样的错误。

为什么我现在不知道我该怎么做才能使用这些功能。

【问题讨论】:

  • 你需要在wordpress里面运行它,你至少应该需要wp-load.php
  • 嗨,Lanis,对不起,“wordpress 内部”是什么意思,我在这个方向(/home/my-account/public_html/feedxml.php)运行文件,但是即使我多次将目录更改为(/home/my-account/public_html/wp-includes/feedxml.php)并得到相同的错误。
  • 正如您之前评论的那样,我尝试包含许多文件和目录,例如“require_once('../../wp-load.php');”或包括完整地址,如“include('/home/my-account/public_html/wp-load.php');”,或包括使用所有组合的目录并得到相同的错误。此页面包含以下错误:第 2 行第 1 列的错误:文档末尾的额外内容 下面是页面的呈现直到第一个错误。

标签: php xml wordpress loops


【解决方案1】:

请尝试将wp-load.php 包含在您正在工作的文件中...比如

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

【讨论】:

  • 嗨,Shafi,感谢您的回答,但我使用了您所说的 require、require_once 或 include,但没有出现相同的错误,此页面包含以下错误:第 2 行的错误第 1 列:文档末尾的额外内容 下面是到第一个错误为止的页面渲染。即使我尝试添加完整目录,例如 /home/my-account/public_html/wp-includes/ 但什么也没有,找不到我尝试使用的功能,不明白。
  • 你在插件中使用它吗?
  • No shafi,完整的代码就是您在帖子中看到的所有代码,我使用它从 url 运行,例如 mydomain.com/feedxml.php 并获取包含所有结果信息的 xml 代码.
  • 是的,当然,代码在原始帖子中,这就是我所拥有的,如果您需要其他内容,请告诉我。看。 kolstadproperty.com/feedxml.php
  • 你能给我这里的表名和字段吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2018-01-30
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
  • 2021-02-26
相关资源
最近更新 更多