如何在自写的 php 代码中访问 wordpress 功能?

How to acces wordpress functions in self-written php code?

我正在开发一个项目,用户可以在其中检查和编辑自己的数据,还可以查看自己的发票。 我正在 本地计算机 上的 PHP 中自己编写该项目的代码,但发票是使用 wp-invoice 插件制作的在其他地方托管的现有和工作 wordpress 网站上。

我希望用户能够登录到我的网络应用程序,然后查看他们的发票,该网络应用程序从 public wordpress 网站上的 wp-invoice api 检索到。 wp-invoice api 的文档可以在这里找到:https://www.usabilitydynamics.com/product/wp-invoice/docs/wp-invoice-api,它使用我不熟悉的 XML-RPC。

XML-RPC使用内置的wordpress函数来使用API。所以我也在我的 本地机器 上下载并安装了 wordpress,并且几乎可以正常工作(我相信)。但是当我使用 "wp-load.php" 将 wordpress 函数加载到我的网络应用程序时,它会将我重定向到 wordpress 安装程序,它说 wordpress 已经安装并且有一个工作 wp-config.php 文件。这是正确的,因为我成功安装了wordpress。

我的代码: (这是我唯一的代码,没有其他文件、函数或使用 'include_once' 包含的 类)

define("ABSPATH", "C:/wamp64/www/mijnDashboard/WP");
define("WPINC", "/wp-includes");
include_once( ABSPATH . '/wp-load.php' );
include_once( ABSPATH . WPINC . '/class-IXR.php' );
include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' );
                $client = new WP_HTTP_IXR_Client( 'http://MyWordpressSiteWithWP-INVOICEinstalled/xmlrpc.php' );
                $client->query('wp.invoice', array(
                    $method = 'get_invoice',
                    $credentials = array('Username', 'Password'),
                    $args = array(
                        'ID' => 1032017043
                    )
                ));
                $the_invoice = $client->getResponse();
echo "$the_invoice";
echo "hallo";

结果:(它将我从我自己写的 'dashboard.php' 重定向到 wordpress 页面 'wp-admin/setup-config.php')

尝试过的解决方案:
我在网上搜索解决方案,有人说这与我的浏览器缓存有关。我在 chrome 中尝试了另一个浏览器和隐身模式,但都得到了相同的结果。
除此之外,我尝试使用另一个名为 'wp-blog-header.php' 的 wordpress 文件加载我需要使用 XML-RPC 的 wordpress 函数,但它得到了相同的结果。

我实际上认为这很容易修复,但我是 XML-RPC 和 API 的新手,我不知道如何正确地将所有 wordpress 函数包含在非wordpress,自写文件。

谢谢,

埃利亚斯

好的,我明白了。我不再使用我的本地机器,而是使用网络服务器。没有错误,我在加载 'wp-load.php'.

时没有被重定向

奇怪的是,几乎相同的代码在 public 网络服务器上运行良好,但在本地计算机上却运行不正常。不过现在可以用了所以没问题。

代码:(我使用了这个并将其上传到 WordPress 根目录,其中包含其他文件,如 wp-config.php 等)

<?php
define( 'WP_USE_THEMES', false );
require( 'wp-load.php' );
$rootD = $_SERVER['DOCUMENT_ROOT'];
define("ABSPATH", "$rootD/httpdocs");
define("WPINC", "/wp-includes");

include_once( ABSPATH . WPINC . '/class-IXR.php' );
include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' );

$client = new WP_HTTP_IXR_Client( 'http://mywordpresswebsite/xmlrpc.php' );

$client->query('wp.invoice', array(
    $method = 'get_invoice',
    $credentials = array('username', 'password'),
    $args = array(
        'ID' => 1032017039
    )
));

$the_invoice = $client->getResponse();

foreach ($the_invoice as $key => $value) {
  echo "$value";
}

?>

感谢大家的帮助。