Пользовательский шаблон страницы WordPress и WP-API

Мой сайт WordPress использует пользовательские шаблоны страниц, например:

<php
/*
Template Name : project_costs
/*

get_header ();

// set default vars or user received
require("my_forms.php");
// pull data from db and calculate
require("project_calculation. php");
// create page
require("content. php");
...

Моя настраиваемая страница project_costs.php выполняя шаги:

  1. Получать и устанавливать введенные пользователем переменные из форм страниц (POST / GET).
  2. Вытащить данные из базы данных.
  3. Сделайте некоторые расчеты и изменения.
  4. Создает страницу для пользователя. 

Я хочу интегрировать angular.js с плагином WP-API. Плагин просто извлекает необработанные данные из базы данных (шаг 2) и отправляет их во внешний интерфейс (шаг 4). Таким образом, страницы и шаблоны, не используемые как страница, не были перезагружены.

Сначала я хочу передать данные в мой класс php (шаг 3), а затем передать измененные данные в WP-API.

Есть ли в WP-API какая-либо функция для вызова моего PHP-файла или функции? 

Любые советы, образцы или ссылки будут высоко оценены.

Благодарю.

2

Решение

Поэтому я работаю над огромным проектом, который включает в себя несколько сменных частей API / Angular для #WordPress. Один файл представляет собой пользовательский endpoint -ilerplate.php. Пока это работает как шарм, но любой вклад будет оценен.

Просто следуйте структуре и используйте my_awesome_function вернуться делать все, что вы хотите. Тогда пространство имен и маршрут из ловушки будут доступны, используя данные из my_awesome_func.

<?php
/* ------------------------------------------------------------------------ *
A great example of custom endpoints is the PHP in wp-api-menus plugin
* ------------------------------------------------------------------------ */

// hook into rest_api_init and register a new api route
add_action( 'rest_api_init', function () {

register_rest_route(
'custom-endpoint/v2',   // namespace
'/author/(?P<id>\d+)',  // route
array(                  // options
'methods'  => 'GET',
'callback' => 'my_awesome_func',
// 'args'     => array(
//     'context' => array(
//     'default' => 'view',
//     ),
// )
)
);

});function my_awesome_func( $data ) {
$posts = get_posts( array(
'author' => $data['id'],
) );

if ( empty( $posts ) ) {
return null;
}

return $posts[0]->post_title;
}

Таким образом, ваш звонок будет get в http://yourproject.com/wp-json/custom-endpoint/v2/author/1

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]