Хранение данных в wp_posts и wp_postmeta
-
Доброго дня !
Подскажите, пожалуйста, как верно организовать хранение данных, получаемых из формы ввода пользователем, содержащей 6-8 полей ? (Соответственно каждая запись будет иметь 6-8 параметров)
Первоначально была мысль создавать собственную таблицу, но понимание множества уже имеющихся в WP средств и методов работы с таблицамиwp_posts
иwp_postmeta
подсказывает актуальность использования данных таблиц. Если предпочтительнее использовать таблицыwp_posts
иwp_postmeta
, то как верно организовать хранение данных: куда записывать данные 6-8 параметров — в поле post_content добавляемой записи таблицыwp_posts
? или же после отправки формы в поле post_content записывать основной параметр, а все остальные (второстепенные) параметры записывать в таблицуpostmeta
как метаданные после создания соответствующей записи в таблицеposts
?Наведите на верную мысль
Заранее благодарен за любую помощь
-
@yube , спасибо Вам огромное, решил вопрос с wp-login.php с помощью хука login_form_login. Можно вернуться к предыдущему вопросу и спросить у Вас про экспорт данных в .csv с помощью функции fputcsv() — вы писали:
Лайфхак 🙂 BOM в начале файла и csv-строки, сформированные функцией fputcsv() с сепаратором ;, Эксель кушает за милую душу.
Подскажите, пожалуйста, можно ли при данном экспорте в экспортируемых данных все точки заменять на запятые ?
fputcsv($out, array("$i", "$uno", "$name_object", "$date", "$region", "$area_type", "$name_np", "$costs", "$place", "$unit_cost"), ';');
Не подскажете как это реализовать ?Не подскажете как это реализовать ?
Можно через array_map.
$a = array_map(function($a){return str_replace('.', ',', $a); }, $a);
@yube , вы имеете ввиду в функции обратного вызова, используемой array_map() , все входные значения обработать функцией str_replace() и таким образом провести требуемую замену символов во всех элементах ? Верно я понял?
Я показал код, который (по идее) меняет
.
на,
во всех элементах массива $a.@yube , спасибо огромное, перезагрузил страницу, и весь код отобразился 🙂 верно понял, буду пробовать
@yube , спасибо, всё получилось! Теперь Excel отлично кушает числа с разделителем
,
, не преобразуя их в дату. @yube , как-то ранее я также спрашивал у Вас про выборку данных из БД:данные для экспорта из базы я выбираю по одной метке и по одной категории, а если категорий или меток несколько, нужно перечислять их в коде через запятую ?
$query = new WP_Query( array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => $export_period_1, $export_period_2 ),), ) );
Вы ответили
Думаю, лучше массивом
Подскажите, пожалуйста, а если переменная $export_period и есть массив, я ведь могу прописать
'terms' => $export_period
и будут выбираться данные соответственно этому массиву ?
И позвольте задать последний вопрос, не могу реализовать никак — как организовать выборку из БД подобно описанной выше, но извлекать из базы данных только посты за последние три года, где точка отсчета «сегодня»? я могу указать явно 3 последние года, но время идет и через год последние 3 года это уже другое время. Не подскажете как это сделать, чтобы не переделывать запрос постоянно, а чтобы запрос извлекал данные за 3 последние года, начиная с «сегодня» ?будут выбираться данные соответственно этому массиву ?
В доке написано
‘terms’
(string|int|array) Term or terms to filter by.Должно понять правильно.
извлекать из базы данных только посты за последние три года
https://developer.wordpress.org/reference/classes/wp_query/#date-parameters
там даже пример есть с'after' => '1 month ago'
(3 year в вашем случае)@yube , вы писали:
`‘terms’
(string|int|array) Term or terms to filter by.`
Должно понять правильно.Попробовал так
'terms' => $export_period
, где $export_period это массив, полученный из выбранных значений select, вроде всё отрабатывает верно.
по поводу второй части вопроса:там даже пример есть с
'after' => '1 month ago'
(3 year в вашем случае)Т.е. получается выбираются записи именно от «сейчас» за прошедший месяц и уже далее с выбранными записями можно делать всё что угодно — в том числе корректировать связанные записи из таблицы wp_postmeta по определенному ключу metakey и т.д., верно ? и в дальнейшем запрос переделывать не нужно
@yube , в любом случае спасибо огромное, буду разбираться
@yube , спасибо Вам огромное за помощь и терпение ! Буду дальше разбираться, а вопрос данной темы решен в более чем полном объеме, не только касательно хранения данных в wp_posts и wp_postmeta, но и их извлечения, дальнейшей обработки и даже экспорта. Содержание данной темы буду использовать как инструкцию.
@yube , ещё раз огромное Вам спасибо за ответы и помощь !
- Тема «Хранение данных в wp_posts и wp_postmeta» закрыта для новых ответов.