Intereting Posts
Авто прокручивается до id при загрузке страницы на всех страницах, кроме главной страницы. Делайте это только на мобильных устройствах какой лучший способ включить изображения из папки изображений шаблона? настроить крошечный блок MCE Пользовательские возможности подменю типа сообщения – настраиваемый плагин Вызов функции класса do_action Программно добавьте опции для «добавления нового» настраиваемого поля. Используйте два запроса WP в шаблоне Пользовательская разбивка страниц на основе разбивки на страницы Кризи Как выполнить цикл WordPress, вызванный функцией фильтрации? Как проверить, были ли опубликованы новые сообщения с момента загрузки страницы? 404 Страница результатов пользовательских результатов для пользовательских типов сообщений с дружественным URL-адресом Вставить авторство Google в заголовок WordPress Использование WAMP, попытка создания плагина, получение ошибки: у вас нет достаточных разрешений для доступа к этой странице Получить страницу slug / id из позиции в меню Как изменить все тексты «Post» в dahboard в «Article»?

Вставка данных в пользовательские таблицы

Я пытаюсь создать пользовательские таблицы ввода для отправки данных в пользовательские таблицы в базе данных wp. Я не могу заставить свой скрипт ничего делать. Пользователь вводит тип напитка, например, водку или виски, предоставляет описание и отправляет его в базу данных, где в базе данных WordPress есть пользовательские таблицы. У меня есть html-код на странице wordpress и php в файле с именем setLiquorType.php, который находится в основной папке wordpress.

Форма HTML

<form method = "post" action = "setLiquorType.php"> Add a New Liquor Type</br></br> <p>Name: <input type="text" name="name"/></p> <p>Description <input type="text" name="description"/></p> ---------------------------------------------- <input type="submit" value="Submit"/> </form> </br> 

Мой скрипт php

 <?php $name = $_POST['name']; $global $wpdb, $name, $description; $table_name = $wpdb->prefix . "Liquor Type"; $wpdb->insert($table_name, array( 'lq_name' => $lq_name, 'description' => $lq_descrip ),array( '%s', '%d') ); } ?> 

Любая помощь будет отличной

Вы сказали, что ваша форма находится в главной папке? Думаю, вам нужно установить правильный URL для action="" . Вы можете попробовать:

 action="<?php echo site_url() . '/setLiquorType.php'; ?>" 

Лучше всего поместить ваш код формы в functions.php, а затем оставить form action = "" пустым. Затем вы можете активировать функцию формы при отправке формы.

Ваша форма HTML:

 <form method = "post" action = ""> //edited form action <h3>Add a New Liquor Type</h3> //wrapped title with <h3> tags and removed <br> because h3 element will have padding that will separate it from form (if not provided in your style.css it will be assigned by the browser) <p> //wraping field with paragraph to generate automatic space between them without styling it <label for="name">Name:</label> //removed <p> element and used <label> instead <input type="text" name="name"/> </p> <p> <label for="description">Description</label> <input type="text" name="description"/> </p> <hr> //replaced unnecessary --- lines <input type="submit" value="Submit" name="liquor_submit"/> // added name attribute that will be used to check if the form is submitted </form> </br> 

Теперь в вас functions.php вы можете добавить что-то вроде:

  //setting up the form function themename_add_new_liquor() { $name = $_POST['name']; $description = $_POST['description']; //You forgot to collect data from "description" field global $wpdb; //removed $name and $description there is no need to assign them to a global variable $table_name = $wpdb->prefix . "liquor_type"; //try not using Uppercase letters or blank spaces when naming db tables $wpdb->insert($table_name, array( 'lq_name' => $name, //replaced non-existing variables $lq_name, and $lq_descrip, with the ones we set to collect the data - $name and $description 'description' => $description ),array( '%s', '%s') //replaced %d with %s - I guess that your description field will hold strings not decimals ); } } //And now to connect the two: if( isset($_POST['liquor_submit']) ) themename_add_new_liquor(); 

Надеюсь, это поможет. Кроме того, это не будет работать, если вы не создали таблицу базы данных в первую очередь (функция $ wpdb-> insert используется для вставки данных в существующую таблицу).

Ура! 🙂