petrefimov25 19.07.2023 05:09

Как добавить поле "Вопрос без ответа" на страницу WordPress для активации сообщества?

Добрый день!

У меня возникла проблема с созданием поля "Вопрос без ответа" на странице WordPress, и я хотел бы попросить вашей помощи.

Моя цель состоит в том, чтобы создать поле, в котором пользователи смогут задавать вопросы и получать ответы от других участников сообщества.

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

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

Ниже я приведу пример кода, который я использовал, но который не работает:

<form action="" method="post">
    <input type="text" name="question" id="question" placeholder="Введите ваш вопрос">
    <input type="submit" value="Отправить">
</form>

Буду очень признателен, если вы сможете разобраться, в чем проблема и помочь мне реализовать данное поле на странице WordPress.

Заранее благодарю за вашу помощь!

Ответы:

Sentimental42 19.07.2023 05:28
Создание поля "Вопрос без ответа" на странице WordPress может показаться сложным, но на самом деле это достаточно просто. Проблема в вашем коде заключается в том, что вы не указали действие для формы и метод передачи данных. Также, вам понадобится добавить обработчик для этой формы. Вот пример исправленного кода:
<form action="" method="post">
    <input type="hidden" name="action" value="submit_question">
    <input type="text" name="question" id="question" placeholder="Введите ваш вопрос">
    <input type="submit" value="Отправить">
</form>
В этом коде мы использовали функцию `esc_url` для безопасного вывода URL-адреса действия формы. Мы также добавили скрытое поле `action` для указания обработчика формы. В данном случае, мы будем использовать хук `admin_post_`, чтобы обработать форму. Теперь вам нужно добавить обработчик формы в файл functions.php вашей темы или в плагин:
add_action( 'admin_post_submit_question', 'submit_question_callback' );
add_action( 'admin_post_nopriv_submit_question', 'submit_question_callback' );

function submit_question_callback() {
    // Получаем данные из формы
    $question = $_POST['question'];
    
    // Делаем что-то с вопросом, например, сохраняем в базе данных
    
    // Редиректим пользователя обратно на страницу
    wp_redirect( $_SERVER['HTTP_REFERER'] );
    exit;
}
В этом обработчике мы используем хук `admin_post_` для обработки отправки формы от авторизованных пользователей и хук `admin_post_nopriv_` для обработки отправки формы от неавторизованных пользователей. Функция `submit_question_callback` получает данные из формы, делает с ними что-то (например, сохраняет в базе данных) и редиректит пользователя обратно на страницу, с которой была отправлена форма. Теперь, когда пользователь отправляет форму, вопрос будет передан обработчику и вы сможете выполнять нужные действия с этим вопросом (например, сохранять в базе данных или отправлять по электронной почте). Надеюсь, это поможет вам реализовать поле "Вопрос без ответа" на странице WordPress. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать!

Добавить ответ