Я пытаюсь получить все продукты в моем интернет-магазине Woocommerce. Я хочу получить эти данные для всех продуктов и распечатать их как json. Но страница продолжает показываться пустой.
Ниже приведен список всех идентификаторов продуктов, чтобы все продукты отображались.
$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'p' => '*');
Я также попробовал это:
$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => 470);
$loop = new WP_Query( $args );
И это:
$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1);
$loop = new WP_Query( $args );
Все они дают один и тот же результат: страница отображается пустой и не получает данных.
Я использовал подобный код, чтобы показать все продукты в определенной категории, и это сработало. Но я не могу заставить его работать, показать все продукты в магазине.
Пожалуйста, помогите?
WooCommerce 2.1+ теперь поставляется с собственным REST API. Вы обязательно должны проверить это.
Обратите внимание, что вы должны использовать https или OAuth для доступа к нему, поэтому вы можете использовать такой клиент один (Я не связан с этой библиотекой).
Не ясно, какие данные вы хотите получить из своего магазина, но из приведенных выше настроек вы можете попробовать этот простой демонстрационный пример:
add_action( 'init', function() {
add_rewrite_endpoint( 'wooexport', EP_ROOT );
});
add_action( 'template_redirect', function() {
if( 'json' === get_query_var( 'wooexport' ) ) {
$posts = get_posts( array( 'post_type' => 'product' ) );
wp_send_json_success( $posts );
}
});
где вы должны не забыть сбросить правила перезаписи, например, путем повторного сохранения настроек постоянных ссылок. Затем вы можете изменить аргументы запроса в соответствии со своими потребностями и получить к нему доступ example.com/wooexport/json/
,
Скорее всего, вы получили ошибку синтаксиса PHP, в результате чего белый экран ?. Так что всегда используйте WP_DEBUG
на вашем тестовом сайте, проверьте, например, Отладка в WordPress из Кодекса.
Я предложу вам использовать опцию экспорта в WordPress, чтобы получить данные с вашего текущего сайта, а затем использовать опцию импорта, чтобы получить данные на новом сайте, который вы хотите. Это просто не нужно никакого кодирования вообще.