Dmitry Kohan
Ответы в темах
-
Ещё раз спасибо
@yube , подскажите ещё, пожалуйста, нужно ли предварительно регистрировать ключ произвольного поля meta_key при помощи функцииregister_meta()
прежде чем добавлять данные в таблицуpostmeta
? и если нужно, то регистрациюmeta_key
можно производить в файле functions.php соответствующей темы ?@yube , по поводу записи в базу Вы написали:
Надеюсь, Вы не собираетесь это делать вручную прямо в базе.
Я планирую записывать в базу после отправки формы посредством класса базы данных wpdb, используя метод
$wpdb->insert($table,$data)
Это ведь верный способ ?@yube , спасибо огромное за ответ
Ещё раз извините за беспокойство
Вы писали:Принципиальной разницы нет. Хотя если понадобится поиск или фильтрация по этому параметру, то лучше хранить его отдельно.
Подскажите ещё, пожалуйста, если хранить необходимые параметры отдельно в
postmeta
, у пользователя с ролью редактора будет возможность отредактировать их при необходимости из фронт-энда подобно редактированию основного контента записи, предоставляемого WP по умолчанию (поля post_title и post_content, подобно скрину http://prntscr.com/sc0mu4 ?
и последнее — ведь не составит проблем после отправки формы в базе данных одновременно создавать записи в трех таблицах WP —wp_posts
,wp_postmeta
(ссылаясь на id данной добавленной записи) иterm_relationships
(также ссылаясь на id данной добавленной записи, есть ведь такая возможность ? ) ?Форум: Проблемы и решения
Тема: Связанные списки AjaxДобился окончательного решения проблемы за счет исключения из кода классов, используемых библиотекой
bootstrap-select.min.js
(может кому-нибудь пригодится).
@yube , спасибо огромное за помощьФорум: Проблемы и решения
Тема: Связанные списки AjaxПодскажите, пожалуйста, может быть ли данная проблема вызвана конфликтом между
bootstrap-select.min.js
и моими собственными скриптами ?Форум: Проблемы и решения
Тема: Связанные списки AjaxДело в том, что я нигде не обращаюсь в своем коде к
bootstrap-select.js
, подключаю толькоbootstrap-select.min.js
, ломаю голову откуда берется это подключение и ошибка…Форум: Проблемы и решения
Тема: Связанные списки Ajax@yube , ещё раз извиняюсь за беспокойство — нашел в чем причина, но не понимаю от чего так происходит: для оформления списков использую библиотеку
bootstrap-select.min.js
. Все библиотеки подключаю следующим образом:add_action('wp_footer', 'add_scripts'); if (!function_exists('add_scripts')) { function add_scripts() { if(is_admin()) return false; wp_deregister_script('jquery'); wp_enqueue_script('jquery', get_template_directory_uri().'/js/jquery-3.2.1.min.js','','',true); wp_enqueue_script('bootstrap',get_template_directory_uri().'/js/bootstrap.min.js','','',true); wp_enqueue_script('bootstrap_select', get_template_directory_uri().'/js/bootstrap-select.min.js','','',true); wp_enqueue_script('js_main', get_template_directory_uri().'/js/main.js','','',true); wp_enqueue_script( 'custom', get_template_directory_uri() .'/js/custom.js','','',true ); wp_localize_script( 'custom', 'myTheme', array('ajaxurl' => admin_url( 'admin-ajax.php' ))); } }
Так вот если у моего списка убрать классы
selectpicker show-tick
, которые используетbootstrap-select.min.js
— то всё работает. И при этом когда всё работает в консоли обнаружил ошибку Скрин ошибки:
Could not load content for http://localhost/wp-content/themes/js/bootstrap-select.js : HTTP status code: 404
Ещё раз извиняюсь — наверное нужно прописать зависимости моегоcustom.js
отbootstrap-select.js
? или не верно ? не пойму..- Ответ изменён 5 лет назад пользователем Dmitry Kohan.
Форум: Проблемы и решения
Тема: Связанные списки Ajax@yube , ещё раз спасибо. Я близок к решению задачи, но не могу разобраться с последним моментом — как вывести полученные элементы списка
<option>
в сам список. Если по порядку:
в functions.php моей темы я подключил свой скрипт след. образом:wp_enqueue_script( 'custom', get_template_directory_uri() .'/js/custom.js','','',true ); wp_localize_script( 'custom', 'myTheme', array('ajaxurl' => admin_url( 'admin-ajax.php' )));
вот сам
custom.js
:jQuery(document).ready(function ($) { var $mainBox = $('#heat_area_name'); var typeBox = $('#heatAreaType'); typeBox.change(function(){ var heatAreaType = $(this).val(); jQuery.post( myTheme.ajaxurl, { action: 'get_city', city: heatAreaType }, function (response) { alert(heatAreaType); $mainBox.html(response); }); }); });
Для перехвата запроса в
functions.php
я использую:add_action( 'wp_ajax_get_city', 'ajax_show_city' ); function ajax_show_city() { global $wpdb; $area_type= $_POST['city']; $areas = $wpdb -> get_results("SELECT area_id,area_name FROM dima_ic_area WHERE area_type_id = $area_type"); foreach ($areas as $area) { echo "<script>alert('Value= ".$area -> area_id." Город= ".$area -> area_name." ');</script>"; echo '<option value="'.$area -> area_id.'">'.$area -> area_name.'</option>'; } wp_die(); }
Через alert все данные из таблиц выводятся, а вот в список, который расположен в
author.php
:<select class="selectpicker show-tick form-control" data-header="Выберите населенный пункт" name="heat_area" id="heat_area_name"> </select>
в этот список ничего не прилетает. Подскажите, пожалуйста, где я ошибся или что-то забыл ? Может быть загвоздка в строке
$mainBox.html(response);
, но что не так?
Заранее спасибо за любую помощьФорум: Проблемы и решения
Тема: Связанные списки Ajax@yube , спасибо за ответ. Подскажите, пожалуйста, правильно ли я понял: в
functions.php
моей темы мне нужно прописать следующий код:add_action( 'wp_enqueue_scripts', 'my_function' ); function my_function() { wp_enqueue_script( 'my-ajax-request', get_template_directory_uri() . '/js/custom_script.js' );//здесь мой JS код указанный выше, отслеживающий изменение <option> в первом списке wp_localize_script( 'my-ajax-request', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); }
Я так понимаю вместо
array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) )
нужно прописать путь к моему скриптуcity.php
?
ps извините, если написал бред, окончательно запуталсяФорум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressЕщё раз спасибо!
Думаю вопрос данной темы решён в полной мере и даже больше. Надеюсь вся информация здесь будет также полезна начинающим вникать в WP в будущем. Тему закрываю.Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressПредыдущий вопрос, связанный с установкой WP-Recall, решил на форуме поддержки плагина WP-Recall: https://codeseller.ru/forum/ustanovka-i-nastroyka/posle-ustanovki-plagina-voznikli-oshibki-wp-errorid-i-filemtime-stat-f/
Прошу прощения, что написал вопрос выше в данной теме по интеграции БД. Но надеюсь возможно кому-то пригодится в будущем.
В заключение перед закрытием этого топика хочу спросить у @otshelnik-fm , и заранее прошу прощения за беспокойство, вы писали:В распространении, в обновлении.
у плагинов есть хуки на включение — при котором можно проверять существование таблиц и их создавать если таковых нет.Вопрос — подскажите, для функционала по созданию, наполнению, обработке произвольных таблиц и дальнейшей передачи плагину WP-Recall ( WP-Recall позволяет получать из произвольных таблиц через класс RCL_QUERY) лучше создать свой отдельный плагин или же лучше оформить в виде дополнения к плагину WP-Recall ? Или можно оформить как в виде дополнения, так и в виде плагина ?
Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressПодскажите, пожалуйста, после активации WP-Recall и дальнейшего выхода из админки появляется предупреждение:
Notice: Undefined property: WP_Error::$ID in /home/user2077509/www/efp.by/wordpress/wp-content/plugins/wp-recall/functions/authorize.php on line 8
А при попытке входа в админку появляется варнинг:Warning: filemtime(): stat failed for /home/user2077509/www/efp.by/wordpress/wordpress/wp-content/plugins/wp-recall/add-on/theme-sunshine/img/default-cover.jpg in /home/user2077509/www/efp.by/wordpress/wp-content/plugins/wp-recall/add-on/theme-sunshine/index.php on line 97
Все другие плагины удалил, поставил ВП тему по умолчанию (Twenty Twenty) — ошибки сохранились.
Я не правильно активировал WP-Recall ? Или что-то упустил ? подскажите, пожалуйстаФорум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressПожалуй, заключительное для этой темы.
@wpgear ранее вы писали:Для Управления с распределением Прав Доступа, можно попробовать некоторые Плагины, типа Ultimate Members или WP-Recall
Но скорее всего, учитывая ваши хотелки, проще написать свой Плагин, добавив пару собственных Таблиц.и:
Если вы не предполагаете оформлять свой Проект в виде Плагина, а у меня закрались такие смутные сомнения, то вам вовсе не обязательно использовать для достижения своих Целей функцию dbDelta()
В результате я пришел к тому, что сейчас разбираюсь с WP-Recall, чтобы использовать его для оформления личного кабинета, и связать его со своим плагином, который в свою очередь занимается созданием моих таблиц и их дальнейшей обработкой и передает таблички WP-Recall для их вывода в ЛК.
@wpgear хочется услышать и ваше мнение о возможности такой реализации (хотя уже пробую)Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPress@otshelnik-fm , спасибо за ответы, но видимо мне самому нужно было прийти к этому, т.к. на данном этапе я всё действительно пихал в functions.php — в том числе и создание своих таблиц (привязывал их к хуку
after_switch_theme
). Теперь понял, что оформлением личного кабинета должен заниматься WP-Recall (как вы писали — это экономит время, не нужно заботиться о многих вещах в ЛК, регистрации, логине, вкладках и т.д.), созданием своих таблиц и их дальнейшей обработкой должен заниматься мой плагин, а тема должна заниматься только внешним оформлением. Осталось разобраться с WP-Recall и «подружить» его с моей темой и плагином.Форум: Проблемы и решения
Тема: Интеграция своей БД с БД WordPressЮрий ( @yube ), по поводу:
Почему бы не создавать таблицы при активации того, где будет размещен код создания (и, вероятно, использования) таблиц?
вопрос: могу ли я использовать плагин
WP-Recall
для оформления личного кабинета в связке со своим плагином, который как раз-таки и будет создавать, формировать и обрабатывать мои таблицы ? Т.е. плагин WP-Recall берет на себя функции регистрации, авторизации пользователей, функции оформления личного кабинета, а мой собственный плагин берет на себя функции по созданию и обработке моих же таблиц ? Этот вариант имеет право на жизнь ?