MDTF - фильтр метаданных WordPress и фильтр таксономий - логика работы "И"
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page pleaseIf you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.
Quote from Алексей on February 18, 2020, 10:18Мы купили у Вас фильтр MDTF ( 12 февраля 2020 г. -код в личных данных)
Большая просьба - подскажите пож. как там включить логику фильтрации "И" - как на демосайте https://woocommerce.wp-filter.com/ajaxed-search-1/
Где при выборе man(9) и wooman(4) в результате получаем 13 товаров, т.е логика "И".
Я нашел описание "
Как установить логику «И» для таксономий в терминах одной и той же таксономии
https://wp-filter.com/howto/how-to-set-logic-and-for-taxonomies-terms-of-the-same-taxonomy/
но у меня этот код не работает, я использую - [mdf_results_by_ajax shortcode="mdf_custom template=any/sales post_type=sales taxomonies=locations orderby=date order=desc page=1 per_page=4 custom_id = 777" animate=1 animate_target=".obekty"]
и ставлю в файл functions.php следующий код:
add_filter('mdf_custom_shortcode_query_args', 'mdf_custom_shortcode_query_args', 10, 2);
function mdf_custom_shortcode_query_args($args, $custom_id)
{
$and_tax_relation = array('locations');
//https://codex.wordpress.org/WordPress_Taxonomy
if ($custom_id == '777')
{
$args['tax_query'] = mdf_modify_tax_query($args['tax_query'], $and_tax_relation);
//add_filter('mdf_dyn_tax_recount_args', 'mdf_dyn_tax_recount_args', 10, 1);
}return $args;
}//*** for dynamic recount
add_filter('mdf_dyn_tax_recount_args', 'mdf_dyn_tax_recount_args', 10, 1);
function mdf_dyn_tax_recount_args($tax_query_array)
{
$and_tax_relation = array('locations');
return mdf_modify_tax_query($tax_query_array, $and_tax_relation);
}//logic of AND relations in taxonomies
function mdf_modify_tax_query($tax_query_array, $and_tax_relation)
{
if (!empty($tax_query_array))
{
foreach ($tax_query_array as $key => $value)
{
if (isset($value['taxonomy']))
{
if (in_array($value['taxonomy'], $and_tax_relation))
{
$tag_terms = $tax_query_array[$key]['terms'];if (!empty($tag_terms))
{
$tag_terms_tpl = $tax_query_array[$key];
$tag_terms_tpl['terms'] = array();
unset($tax_query_array[$key]);
foreach ($tag_terms as $term_id)
{
$tag_terms_tpl['terms'] = array($term_id);
$tax_query_array[] = $tag_terms_tpl;
}
}
}
}
}
}return $tax_query_array;
}Ссылка на мой сайт http://phuket.bs-studio.ml/sales/
Спасибо за ответ
Мы купили у Вас фильтр MDTF ( 12 февраля 2020 г. -код в личных данных)
Большая просьба - подскажите пож. как там включить логику фильтрации"И" - как на демосайте https://woocommerce.wp-filter.com/ajaxed-search-1/
Где при выборе man(9) и wooman(4) в результате получаем 13 товаров, т.е логика"И".
Я нашел описание"
Как установить логику «И» для таксономий в терминах одной и той же таксономии
https://wp-filter.com/howto/how-to-set-logic-and-for-taxonomies-terms-of-the-same-taxonomy/
но у меня этот код не работает, я использую - [mdf_results_by_ajax shortcode="mdf_custom template=any/sales post_type=sales taxomonies=locations orderby=date order=desc page=1 per_page=4 custom_id = 777" animate=1 animate_target=".obekty"]
и ставлю в файл functions.php следующий код:
add_filter('mdf_custom_shortcode_query_args', 'mdf_custom_shortcode_query_args', 10, 2);
function mdf_custom_shortcode_query_args($args, $custom_id)
{
$and_tax_relation = array('locations');
//https://codex.wordpress.org/WordPress_Taxonomy
if ($custom_id == '777')
{
$args['tax_query'] = mdf_modify_tax_query($args['tax_query'], $and_tax_relation);
//add_filter('mdf_dyn_tax_recount_args', 'mdf_dyn_tax_recount_args', 10, 1);
}
return $args;
}
//*** for dynamic recount
add_filter('mdf_dyn_tax_recount_args', 'mdf_dyn_tax_recount_args', 10, 1);
function mdf_dyn_tax_recount_args($tax_query_array)
{
$and_tax_relation = array('locations');
return mdf_modify_tax_query($tax_query_array, $and_tax_relation);
}
//logic of AND relations in taxonomies
function mdf_modify_tax_query($tax_query_array, $and_tax_relation)
{
if (!empty($tax_query_array))
{
foreach ($tax_query_array as $key => $value)
{
if (isset($value['taxonomy']))
{
if (in_array($value['taxonomy'], $and_tax_relation))
{
$tag_terms = $tax_query_array[$key]['terms'];
if (!empty($tag_terms))
{
$tag_terms_tpl = $tax_query_array[$key];
$tag_terms_tpl['terms'] = array();
unset($tax_query_array[$key]);
foreach ($tag_terms as $term_id)
{
$tag_terms_tpl['terms'] = array($term_id);
$tax_query_array[] = $tag_terms_tpl;
}
}
}
}
}
}
return $tax_query_array;
}
Ссылка на мой сайт http://phuket.bs-studio.ml/sales/
Спасибо за ответ
Quote from Pablo Borysenco on February 18, 2020, 11:27Здравствуйте
Похоже в Вашем фильтре нет таксономий(или я ошибаюсь?)
Этот код работает только с таксономиями. И если Вы используете именно этот код, тогда таксономия должна иметь слаг - 'locations'
Но похоже у Вас в фильтре только мета данные.
Здравствуйте
Похоже в Вашем фильтре нет таксономий(или я ошибаюсь?)
Этот код работает только с таксономиями. И если Вы используете именно этот код, тогда таксономия должна иметь слаг - 'locations'
Но похоже у Вас в фильтре только мета данные.
Quote from Алексей on February 18, 2020, 11:41Таксономия на сайте есть, но я не фильтрую по таксономиям, Я просто хочу узнать как включить логику фильтрации "И" - как на демосайте https://woocommerce.wp-filter.com/ajaxed-search-1/
Подскажите пож. какой код надо для этого использовать. Или в фильтре MDTF, такая возможность не предусмотрена?
Таксономия на сайте есть, но я не фильтрую по таксономиям, Я просто хочу узнать как включить логику фильтрации"И" - как на демосайте https://woocommerce.wp-filter.com/ajaxed-search-1/
Подскажите пож. какой код надо для этого использовать. Или в фильтре MDTF, такая возможность не предусмотрена?
Quote from Pablo Borysenco on February 18, 2020, 13:00Здравствуйте
Логика И работает только для таксономий. Этот код должен включить логику И , главное добавить слаг таксономии для который Вы хотите включить эту логику - https://c2n.me/463wDeB.png
Здравствуйте
Логика И работает только для таксономий. Этот код должен включить логику И , главное добавить слаг таксономии для который Вы хотите включить эту логику - https://c2n.me/463wDeB.png
Quote from Алексей on February 18, 2020, 13:51При фильтрации по таксономиям логика "И" работает. А при фильтрации по мета данным логика "И" не работает, работает только логика "ИЛИ".
Я правильно понял?
Демосайт https://woocommerce.wp-filter.com/ajaxed-search-1/
показывает работу фильтра при фильтрации по таксономиям?
При фильтрации по таксономиям логика"И" работает. А при фильтрации по мета данным логика"И" не работает, работает только логика"ИЛИ".
Я правильно понял?
Демосайт https://woocommerce.wp-filter.com/ajaxed-search-1/
показывает работу фильтра при фильтрации по таксономиям?
Quote from Pablo Borysenco on February 19, 2020, 11:34Здравствуйте
Да эта логика работает только с таксономиями и не работает с мета данными.
показывает работу фильтра при фильтрации по таксономиям? - Да
Здравствуйте
Да эта логика работает только с таксономиями и не работает с мета данными.
показывает работу фильтра при фильтрации по таксономиям? - Да