Intereting Posts
Настройка по умолчанию «Тематическое местоположение» при создании меню wp_trim_words обрезается символом вместо слов фильтровать базу циклов по определенной категории home.php или frontpage (через настройки) для темы? Присвоить категорию всем статьям Как выводить количество комментариев со ссылкой на комментарии Как я могу получить Пользовательские сообщения от имени категорий? Получить постоянную ссылку на сообщение, связанное с привязкой к Как добавить кнопку главного меню, которая перенаправляется на другой сайт или поддомен? Добавить html слово перед категорией Как добавить мета-поля сообщения в текст <head> в качестве мета элементов Пользовательское правило перезаписи для захваченного сообщения (правило перезаписи для перезаписи правила) Нужно добавить стоимость, если флажок установлен Media Attachment Пользовательские метаполя не сохраняются в Media Uploader при использовании автозаполнения jQuery UI Я правильно использую крюк действия?

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

Я пытаюсь создать пользовательские таблицы ввода для отправки данных в пользовательские таблицы в базе данных 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') ); } ?> 

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

Solutions Collecting From Web of "Вставка данных в пользовательские таблицы"

Вы сказали, что ваша форма находится в главной папке? Думаю, вам нужно установить правильный 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 используется для вставки данных в существующую таблицу).

Ура! 🙂