Ответы в темах

Просмотр 15 ответов — с 16 по 30 (всего 149)
  • Спасибо огромное за помощь! Всё получилось

    если вкратце, я ведь могу проверять пустоту нескольких элементов input, считывать их значения и манипулировать ими по событию click другой кнопки, а результат вычислений выводить в тот же момент также по событию click той же кнопки в модальном окне, вызываемым данной кнопкой, посредством ajax ?

    ps @yube , извините, пожалуйста, за беспокойство

    @yube , спасибо большое, буду пробовать, возникла также идея — а если попытаться реализовать это в виде модального окна, т.е. рядом с кнопкой «Сохранить» добавить кнопку «Проверить», и тогда именно по нажатию на данную кнопку будут проходить все манипуляции и вычисления и результат проверки будет выводиться в модальном окне, и при этом кнопку «Сохранить» с самого начала я буду делать disabled, а когда выполнится событие click по кнопке «Проверить» и все текстовые поля будут заполнены и иметь допустимый формат после проверки по click, аттрибут disabled у кнопки «Сохранить» убирать ? имеет ли такой вариант право на жизнь ? или я что-то упустил ?

    • Ответ изменён 4 года, 5 месяцев назад пользователем Dmitry Kohan. Причина: уточнил

    @yube , еще раз спасибо, разобрался. Действительно, параметр meta_query в функции get_terms() работает аналогично параметру meta_query в WP_Query.
    @yube , позвольте у Вас попросить ещё один совет: если есть 3 числовых поля, результат вычисления по которым нужно сравнить со значением из БД и вывести в фоновом режиме на экран, то как это лучше реализовать ? нужно как-то проверять три поля input на пустоту и если все поля заполнены выполнять AJAX-запрос ? и это нужно проверять всякий раз когда любое из полей теряет фокус ? но как быть, если после ввода всех трех значений пользователь нажимает кнопку «Сохранить» ? — результат сравнения ведь не успеет даже показаться на экране… или может быть есть другой вариант, до которого я не додумался… подскажите, пожалуйста

    get_terms() WP 2.3.0

    meta_query(массив)
    Запрос для получения элементов на основе метаданных. Смотрите WP_Meta_Query.

    WP_Meta_Query{} WP 3.2.0
    Класс создает JOIN и WHERE части SQL запроса, которые в дополнении к основному запросу будут фильтровать результат по указанным ключу и значению метаполя.

    WP_Meta_Query — это вспомогательный класс, который используется в комбинации с классами: WP_Query, WP_User_Query, WP_Comment_Query и помогает им фильтровать результат на основе указанных метаданных.

    @yube , понял, спасибо. Разбираюсь с метаданными терминов.
    Вы не подскажете, в функции get_terms() параметр meta_query работает аналогично параметру meta_query в WP_Query ? это массив массивов, но только работает вместо postmeta с termmeta, верно ?

    @yube , спасибо огромное, пытаюсь сделать свой SQL-запрос по образу и подобию порождаемого WP. Для постов (объекта WP_Query) существует фильтр posts_groupby, чтобы изменять GROUP BY часть SQL запроса. Вы не подскажете — для терминов ничего такого подобного не существует ? Т.е. нужно посредством $wpdb писать свой запрос, чтобы изменить результат, который формирует функция get_terms() ?

    @yube , может быть у Вас будет какая-нибудь идея ?) зашел в тупик..
    ps еще раз извините, так сказать последняя надежда

    Если выразиться проще — не могу извлечь все термины определенного типа записи так, чтобы эти термины не повторялись т.е. записи могут иметь термины с одинаковым name, description и т.д. но с разным term_id. Не могу понять как извлекать такие «повторяющиеся» термины только один раз… может кто подскажет.
    Буду рад любому комментарию или подсказке в каком направлении думать.
    Заранее спасибо

    @yube , доброго времени суток ) сразу прошу прощения за беспокойство
    Подходя к завершению данного вопроса по реализации каталога продукции, столкнулся с проблемой вывода всех поставщиков и продавцов по определенной категории товаров (как Вы и советовали, товары у меня — это записи в wp_posts, продавцы и поставщики — это термины соответствующих таксономий в wp_terms, привязанные к этим товарам; у каждого товара есть свой производитель и поставщик, но у разных товаров производители и поставщики могут совпадать и при этом они являются разными терминами в БД). Подскажите, пожалуйста, как можно извлечь весь список продавцов определенной категории товаров, не дублируя их при этом. Не пойму как реализовать эту задачу, пытаюсь с помощью get_terms(), но одинаковые продавцы дублируются т.к. это разные термины в БД:

    $terms = get_terms( [
            'hide_empty'  => false,  
            'orderby'     => 'name',
            'hierarchical'=> false,
            'parent'      => $group_material,
            'order'       => 'ASC',
            'taxonomy'    => 'seller',
        ] );

    Может быть как то можно их анализировать по полю name каждого термина, но как… или есть другой способ? подскажите, пожалуйста

    @yube , я кажется разобрался с данными нотисами, но вопрос остался.
    К типу записи asset привязано 3 таксономии — country, groupasset, employer. Таксы и записи я регистрирую в functions.php и у каждой таксы при регистрации указываю атрибут 'default_term'. По той таксе, которая регистрируется первой из трех привязанных к записи, нотис не возникает; но именно та, которая регистрируется первой, т.е. если меняю порядок регистрации, то и нотисы вида Undefined index: таксономия соответственно меняются и нет нотиса только по первой зарегистрированной таксе, которая привязана к этому типу записи.
    Не подскажете, почему так может получаться ? Можно ведь использовать ‘default_term’ для всех таксономий, а не только для одной ?

    Значит буду пытаться исправлять 🙂
    Но почему элемент массива $postarr['tax_input']['groupasset'] не существует?, если таксономия groupasset зарегистрирована, термины её — вставлены wp_insert_term(). Не подскажете как можно устранить данные нотисы ?

    Понял, @yube , ещё раз спасибо, буду разбираться дальше.
    Т.е. в принципе на данные Notice можно не обращать внимания, верно?

    понял, @yube , спасибо
    Позвольте спросить, почему могут возникать Notice вида:

    Notice: Undefined index: groupasset in C:\xampp\htdocs\budexportcost\wp-includes\post.php on line 4053
    
    Notice: Undefined index: employer in C:\xampp\htdocs\budexportcost\wp-includes\post.php on line 4053

    при добавлении записей кастомного типа с помощью wp_insert_post() и затем установкой терминов кастомных таксономий (в частности: country, groupasset, employer) для этих записей при помощи wp_set_post_terms() ? Все записи добавляются нормально, термины привязываются, но на таксу country WP почему-то не ругается. Не подскажете, в чем может быть причина?
    Не может же быть такое из-за того, что я привязываю записи только к дочернему термину, а к родительскому — нет ? Когда термин является дочерним и к нему привязана некая запись, то не нужно ведь эту запись привязывать и к его родительскому термину ?

    @yube , прошу прощения, с вопросом выше разобрался ранее — сам виноват, указывал неверные параметры в wp_insert_term().
    @yube , прошу Вашей помощи, не могу понять как в WordPress можно узнать id последней записи из wp_posts и id последнего термина из wp_terms. Не могу найти, может быть есть специальные функции в WordPress для этих целей ? Ведь наверное неправильно узнавать это через стандартные SQL-запросы:
    $max_post = $wpdb -> get_var("SELECT MAX(ID) FROM wp_posts")
    и
    $max_term = $wpdb -> get_var("SELECT MAX(term_id) FROM wp_terms") ?
    Подскажите, пожалуйста

    • Ответ изменён 4 года, 8 месяцев назад пользователем Dmitry Kohan. Причина: уточнил
Просмотр 15 ответов — с 16 по 30 (всего 149)