Как изменить порядок комментариев WordPress REST API? - PullRequest
0 голосов
/ 18 июня 2019

Я использую React и WordPress API.Я получаю комментарии к сообщению с родительским атрибутом, но они не организованы в виде потоковых комментариев.Комментарии могут быть явно родителями и детьми.Мне нужно отобразить их в виде многопоточных комментариев, есть идеи, как этого добиться?

Есть ли способ?

Вот комментарии, которые я получаю в консоли: enter image description here

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Я думаю, что этот код делает то, что вы хотите. Он сортирует список по убыванию родительского идентификатора и передает каждый комментарий дочерним элементам родителя. Если родитель равен 0, он не будет его выдвигать, поскольку это должен быть один из первых комментариев.

var arr = [
    {id: 7, post: 1, parent: 4, author: 1, author_name: 'me'},
    {id: 6, post: 1, parent: 5, author: 1, author_name: 'me'},
    {id: 5, post: 1, parent: 4, author: 1, author_name: 'me'},
    {id: 4, post: 1, parent: 0, author: 1, author_name: 'me'},
    {id: 3, post: 1, parent: 0, author: 1, author_name: 'me'},
    {id: 2, post: 1, parent: 1, author: 1, author_name: 'me'},
    {id: 1, post: 1, parent: 0, author: 0, author_name: 'other'},
]

arr = arr.sort((a, b) => b.parent - a.parent)

const sortComments = (arr) => {
    var temp = [...arr]
    arr.forEach((o, index) => {
        if (temp[0].parent === 0) return
        var parentIndex = temp.findIndex(o => o.id === temp[0].parent)
        temp[parentIndex].children ? temp[parentIndex].children.push(temp[0]) : temp[parentIndex].children = [temp[0]]
        temp.shift()
    })

    return temp
}

console.log(sortComments(arr))
0 голосов
/ 18 июня 2019

Вы можете использовать order и orderby параметры. Проверьте wp rest api handboook .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...