Как получить доступ к функциям WordPress в самописном PHP-коде? - PullRequest
0 голосов
/ 07 мая 2018

Я работаю над проектом, в котором пользователи могут проверять и редактировать свои собственные данные, а также просматривать свои счета. Я пишу код для этого проекта самостоятельно на PHP на моей локальной машине , но счета выставляются с помощью плагина wp-invoice на существующем и работающем WordPress-сайте, который размещен где-то еще.

Я хочу, чтобы пользователи могли войти в мое веб-приложение и затем увидеть свои счета, которые веб-приложение получило из API wp-invoice, на общедоступном сайте WordPress. Документацию для API wp-invoice можно найти здесь: https://www.usabilitydynamics.com/product/wp-invoice/docs/wp-invoice-api, он использует XML-RPC, с которым я не знаком.

XML-RPC использует встроенные функции WordPress для использования API. Поэтому я также скачал и установил WordPress на мою локальную машину и почти все заработало (я верю). Но когда я загружаю функции WordPress в свое веб-приложение, используя «wp-load.php», он перенаправляет меня в установщик 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») Result of code

Пробные решения:
Я искал в Интернете решения, и некоторые люди говорили, что это как-то связано с кэшем моего браузера. Я попробовал другой браузер и режим инкогнито в chrome, но оба получили одинаковый результат.
Кроме того, я пытался загрузить функции wordpress, которые мне нужны для использования XML-RPC, с помощью другого файла wordpress, называемого 'wp-blog-header.php', но он дал мне тот же результат.

Я на самом деле думаю, что это легко исправить, но я новичок в XML-RPC и API, и я не знаю, как правильно включить все функции wordpress в самописный файл, не являющийся wordpress.

Спасибо

Элиас

1 Ответ

0 голосов
/ 08 мая 2018

Хорошо, я понял это. Я больше не использовал свою локальную машину, но вместо этого я использовал веб-сервер. Нет ошибок, и я не перенаправляюсь при загрузке wp-load.php.

Странно, что почти одинаковый код прекрасно работает на общедоступном веб-сервере, но не на локальной машине. Но теперь он работает, так что все в порядке.

Код: (я использовал это и загрузил в корневой каталог 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";
}

?>

Спасибо за помощь.

...