Closed TFK70 closed 1 year ago
@brusselboy да, они уже существуют и их уже можно получить по gql
Не знаю заметил ты или нет, но в плейграунде есть кнопка Query Composer:
Слева будет меню, которое поможет получить что надо:
@brusselboy для начала нужно загрузить нужное изображение в медиафайлы - https://wp.shdvor.pro/wp-admin/upload.php
Потом зайти на страницу поста и загрузить изображение в featured image
Если блок featured image не отображается - погугли как его включить
@brusselboy
Какой запрос отвечает за просмотры у поста? Из счётчиков нашёл там только счётчик комментариев.
Никакой, оставь пока
Как отформатировать мейн текст, чтобы он был как здесь. Из идей только вырезать текст по кускам и уже их обрабатывать, мейби есть какой-то способ получше?
На вордпрессе его форматировать не надо, просто пометь его как-нибудь и парси на клиенте, добавляя форматирование
По поводу картинок не до конца разобрался, загрузить загрузил, но featured image не нашёл. Нагуглил вот это, пишут про "настройки экрана", у меня там нету featured image, на странице поста тоже ни намёка. По этому вопросу хотелось бы в дисе созвониться.
Создал отдельную группу - https://wp.shdvor.pro/wp-admin/edit.php?post_type=fragments
Перенеси все посты в нее, там есть имейдж
Со всем остальным текстом допустим с заголовком и со всем таким похожим текстом (у кнопок и т.д) мы как работаем, тоже всё с бека запрашиваем?
Можешь создать под это отдельный custom post type через CPT UI (то же самое я сделал для фрагментов, на которые дал тебе ссылку) и держать все подобные отрывки в нем
Только не забудь в конце при создании переключить свитч Show in graphql, иначе ты по графу его не получишь
@brusselboy какой статус?
@brusselboy локально же у тебя всё норм?
@carminio запрашивай схему, поиграйся с этими запросами:
query A {
__schema {
queryType {
fields {
name
type {
fields {
name
}
}
args {
name
description
defaultValue
}
}
}
}
}
Отсюда будешь получать радиусы
@carminio тебе нужен Service_Servicesparams_Price
, ты же получаешь gql типы в ответе, у тебя вся схема есть
Мог бы достать название типа из инспектора справа или просто в поиске вбить r12
@carminio да, а как ты хотел? Еще раз: ты получаешь только схему по которой делаются запросы
@carminio погоди, так ты и передаешь промис, потренируй асинхронщину:
попробуй
price {
${await getRadii()}
}
@carminio
но на втором этапе где нужно вставлять код в какой-то файл single.php идея провалилась, тк такого файла в нашей теме нет.
Тема в вп - это клиент. У нас вместо темы свой клиент, поэтому никакие скрипты в тему вставлять не нужно тк бессмысленно. Но, тем не менее, вставить скрипт который будет инкрементить счётчик просмотров все-равно нужно
Необходима помощь разобраться как сделать счетчик без плагина (код который добавлял в graphql это решение без плагина), либо с плагином, разницы нет, результат все равно один и тот же
Плагин тебе энивей нужен, просто ты его юзаешь по-другому. Тот код который ты вставлял просто добавляет счетчик в gql схему и ты можешь его получить по gql, осталось счётчик инкрементить
Хз че за код этот чувак предложил чтобы view_count
получать, но он не работает, переписал на это:
register_graphql_field( 'Post', 'viewCount', [
'type' => 'Int',
'description' => __( 'The number of times the post was viewed', 'your-textdomain' ),
'resolve' => function( $post, $args, $context, $info ) {
// $post is an instance of a WPGraphQL Post model,
// so we can get the ID from the post, and then get meta from that post
// by calling get_post_meta()
$view_count = pvc_post_views( $post->postId );
// if there's any count value, return it, otherwise return 0
return isset( $view_count ) ? absint( $view_count ) : 0;
}
]);
Ещё добавил отдельно gql мутацию на инкремент счётчика, её тебе нужно вызывать каждый раз когда кто-то тыкает на пост:
register_graphql_mutation('incrementCounter', [
'inputFields' => [
'post_id' => [
'type' => 'Int',
'description' => _('Post id')
]
],
'outputFields' => [
'viewCount' => [
'type' => 'Int',
'description' => _('View count')
],
'success' => [
'type' => 'Boolean',
'description' => _('Wrote to db succesfully')
]
],
'description' => __( 'Increment post views counter' ),
'mutateAndGetPayload' => function( $input, $context, $info ) {
$pid = $input['post_id'];
$view_count = pvc_post_views( $pid );
$success = pvc_update_post_views($pid, $view_count + 1);
return [
"viewCount" => $view_count + 1,
"success" => $success
];
}
]);
mutation D {
incrementCounter(input: {post_id: 1397}) {
viewCount
success
}
}
И плагин не трогай, я там тоже кое-что поправил, если его переустановить - всё слетит
Задача
Наполнить сайт данными с вордпресса
Как я это вижу
Все запросы нужно адресовывать на https://wp.shdvor.pro/graphql
Данные с вордпресса можно получать по Graphql
Также есть плейграунд, в который можно перейти нажав сюда
По похожей схеме работают https://misik.pro и https://dream-team.tech
Подводные камни
Некоторые записи могут иметь "мусорные" символы. Чтобы избавиться от них строку можно прогнать через подобную функцию
|<\/p>)/g, '') .replace(/–/g, '-') .replace(/—/g, '-') .replace(//g, '') .replace(/
/g, '') .replace(/
/g, '') ```