• Хочу реализовать ради интереса, простую систему сообщений, между двумя пользователями.

    Вопрос как это правильно реализовать ?

    Я изначально думал попробовать это сделать на чистом PHP, а потом интегрировать в WordPress.

    Но, что-то мне подсказывает что это можно сделать с помощью wordpress функционала.

    Плагины и.т.д — не предлагать, тут сама идея реализации своего простого велосипеда.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Первое что приходит на ум:

    • создать новый непубличный тип записи Сообщения
    • по умолчанию можно использовать заголовок, как тему сообщения; автора, как имя отправителя; содержимое записи, как само сообщение;
    • создать кастомное поле ID получателя

    В целом с такими исходными можно написать простенький мессенджер внутри сайта

    Автор wildapache

    (@wildapache)

    Создать непубличный пост, примерно знаю.

    по умолчанию можно использовать заголовок, как тему сообщения; автора, как имя отправителя; содержимое записи, как само сообщение;

    Тут не совсем понятно.

    То есть, к примеру мне нужно написать бобу, сообщение, для этого мне нужно знать айди юзера боба, ок, тут понятно. Дальше я заношу в непубличный пост сообщение и айди юзера ? или айди юзера я заношу в кастомное для этого поля и потом связываю его с кастомным типом записи ?

    Конечно дело Ваше, но я бы не делал с типами записями. Лучше создать отдельную таблицу, свою форму итд. Зачем раздувать сообщениями таблицу которая не для этого создавалась?

    Автор wildapache

    (@wildapache)

    Я тоже придерживаюсь мнения что просто к айди прикрутить отдельную таблицу и систему в общем, а айди использовать ввиде адресатов что кому куда. То есть по сути будут использоваться только айди юзеров. Но пока как это правильно рализовать — не знаю, наверно пока не начну.

    Мой ответ базируется на запросе «сделать с помощью wordpress функционала». Если цель по максимум использовать встроенный функционал, то новый тип записи для этого подходит.

    Сам принцип общения с бобом следующий: вы пишите бобу, нажимаете кнопку отправить, происходит асинхронный запрос.

    Асинхронным запросом мы создаем новую запись и помещаем следующие данные:

    • автор записи (ID) = отправитель
    • контент записи = отправленное сообщение
    • кастомное поле ID получателя = ID Боба
    • название записи можно сгенерировать любое, типа «Сообщение от Васи Бобу 09.06.2025 16:08»

    Получать же все сообщения в чате можно через get_posts() или WP_Query

    Но лучше конечно реализовывать отдельной сущностью, чтобы не нагружать базу, например как сделаны комментарии в ВП. Они хранятся в отдельной таблице wp_comments. Тут можно создать две таблицы: wp_chat_messages (со всеми сообщениями) и wp_chats (чтобы группировать сообщения). Ну и по тому же принципу написать свои функции добавления новых сообщений и т.д.

    Автор wildapache

    (@wildapache)

    Примерно понял как.

    Как выйдет в реализации, пока не знаю, но, если будут вопросы, буду неприменно обращаться.

Просмотр 6 ответов — с 1 по 6 (всего 6)