-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Работа с данными #15
Comments
@brusselboy для начала нужно загрузить нужное изображение в медиафайлы - https://wp.shdvor.pro/wp-admin/upload.php Потом зайти на страницу поста и загрузить изображение в featured image Если блок featured image не отображается - погугли как его включить |
@brusselboy
Никакой, оставь пока
На вордпрессе его форматировать не надо, просто пометь его как-нибудь и парси на клиенте, добавляя форматирование
Создал отдельную группу - https://wp.shdvor.pro/wp-admin/edit.php?post_type=fragments Перенеси все посты в нее, там есть имейдж
Можешь создать под это отдельный custom post type через CPT UI (то же самое я сделал для фрагментов, на которые дал тебе ссылку) и держать все подобные отрывки в нем Только не забудь в конце при создании переключить свитч Show in graphql, иначе ты по графу его не получишь |
@brusselboy через ACF |
@brusselboy какой статус? |
@brusselboy локально же у тебя всё норм? |
@carminio запрашивай схему, поиграйся с этими запросами: query A {
__schema {
queryType {
fields {
name
type {
fields {
name
}
}
args {
name
description
defaultValue
}
}
}
}
}
Отсюда будешь получать радиусы |
@carminio да, а как ты хотел? Еще раз: ты получаешь только схему по которой делаются запросы |
@carminio погоди, так ты и передаешь промис, потренируй асинхронщину: попробуй price {
${await getRadii()}
} |
@carminio
Тема в вп - это клиент. У нас вместо темы свой клиент, поэтому никакие скрипты в тему вставлять не нужно тк бессмысленно. Но, тем не менее, вставить скрипт который будет инкрементить счётчик просмотров все-равно нужно
Плагин тебе энивей нужен, просто ты его юзаешь по-другому. Тот код который ты вставлял просто добавляет счетчик в gql схему и ты можешь его получить по gql, осталось счётчик инкрементить Теперь к решениюХз че за код этот чувак предложил чтобы 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
Подводные камни
Некоторые записи могут иметь "мусорные" символы. Чтобы избавиться от них строку можно прогнать через подобную функцию
The text was updated successfully, but these errors were encountered: