API Вывод одного поста по permalink и последующих по категориям. Readme.txt по параметрам API #3

Merged
apuc merged 1 commits from feature/back-api into master 2024-05-30 13:15:48 +03:00
2 changed files with 19 additions and 24 deletions
Showing only changes of commit c09a941d3f - Show all commits

9
api-readmi.txt Normal file
View File

@ -0,0 +1,9 @@
API
API принимает запросы по URL /wp-json/api-posts/v1/endlessPosts
Через GET-запрос принимает значение permalink, выводит информацию по посту чей permalink пришёл, далее 10 пермалинков и
ID постов из совпадающих категорий.
Пример:
/wp-json/api-posts/v1/endlessPosts?permalink=http://pamtest.ru/641-kak-zarabatyvat-bolshe-na-osago-i-ipotechnom-strahovanii/

View File

@ -10,45 +10,36 @@ function endlessPosts()
)); ));
} }
function getEndlessPostsResults($data, $paged = 1) function getEndlessPostsResults($data)
{ {
global $wpdb; global $wpdb;
$link = $data['permalink']; $link = $data['permalink'];
$result = [];
$tag_slug = url_to_postid($link); //Получаем айди поста по пермалинку $tag_slug = url_to_postid($link); //Получаем айди поста по пермалинку
// var_dump($tag_slug);
$tags = get_the_tags($tag_slug); //Получаем тэги по айди $tags = get_the_tags($tag_slug); //Получаем тэги по айди
// var_dump($tags[0]->term_id);
// die();
$i = 0; $i = 0;
$postSlugs = []; $postSlugs = [];
foreach ($tags as $key => $slug){ //Создаём массив с ID тэгов foreach ($tags as $key => $slug){ //Создаём массив с ID тэгов
$postSlugs[] += $tags[$i]->term_id; $postSlugs[] += $tags[$i]->term_id;
// if ($key < count($tags) - 1) {
// $postSlugs .= ', ';
// }
$i++; $i++;
} }
// $tag_name = $tag->name;
$id_from_permalink = explode('/', $link); $id_from_permalink = explode('/', $link);
$id_from_permalink = explode('-', $id_from_permalink[3]); $id_from_permalink = explode('-', $id_from_permalink[3]);
$id = $id_from_permalink[0]; $id = $id_from_permalink[0];
$post_id = $id;
// $category = get_the_tags($post_id); $requestedPost = get_post($id);
$result = array();
$result[] = ['requested-post' => $requestedPost];
$args = array( // Создаем массив с параметрами запроса $args = array( // Создаем массив с параметрами запроса
'tag__and' => $postSlugs, 'tag__and' => $postSlugs,
'posts_per_page' => 10, 'posts_per_page' => 10,
'paged' => $paged, 'orderby'=>'date',
'orderby'=>'date' 'order'=> 'DESC'
); );
$posts = new WP_Query($args); // Инициализация запроса $posts = new WP_Query($args); // Инициализация запроса
@ -70,13 +61,8 @@ function getEndlessPostsResults($data, $paged = 1)
$actualTag = get_the_tags(); $actualTag = get_the_tags();
$terms = get_the_category(); $terms = get_the_category();
$result[] = array( $result[] = array(
'post_id' => get_the_ID(),
'permalink' => get_the_permalink(), 'permalink' => get_the_permalink(),
'terms' => $terms[0]->slug,
'title' => get_the_title(),
'author' => get_the_author(),
'date' => get_the_date(),
'post-body' =>get_the_content(),
'tags' => get_the_tags()[0]->name
); );
} }