Передать параметр на подключенную функцию с помощью настраиваемого шаблона страницы

Исходя из этого, я попытался написать следующий код:

Пользовательский шаблон страницы:

/* Template Name: product_filter */ get_header(); do_action( 'pre_get_posts', 'COOLING'); 

functions.php

 add_action('pre_get_posts','shop_filter_cat',10,1); function shop_filter_cat($query, $arg) { if (!is_admin() && is_post_type_archive( 'product' ) && $query->is_main_query()) { $query->set('tax_query', array( array ('taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $arg ) ) ); } } 

Но у меня есть следующее предупреждение:

Предупреждение: Отсутствует аргумент 2 для shop_filter_cat (), вызывается в E: \ xampp \ htdocs \ wordpress \ wp-includes \ plugin.php в строке 600 и определен в E: \ xampp \ htdocs \ wordpress \ wp-content \ themes \ storefront \ functions.php в строке 56

и ошибка:

Неустранимая ошибка: Непринятая ошибка: вызов функции-члена is_main_query () в строке в E: \ xampp \ htdocs \ wordpress \ wp-content \ plugins \ woocommerce \ includes \ wc-deprecated-functions.php: 677 Трассировка стека: # 0 E: \ xampp \ htdocs \ wordpress \ wp-includes \ plugin.php (524): wc_shop_order_status_backwards_compatibility ('COOLING') # 1 E: \ xampp \ htdocs \ wordpress \ wp-content \ themes \ storefront \ testing.php (6 ): do_action ('pre_get_posts', 'COOLING') # 2 E: \ xampp \ htdocs \ wordpress \ wp-includes \ template-loader.php (75): include ('E: \ xampp \ htdocs …') # 3 E: \ xampp \ htdocs \ wordpress \ wp-blog-header.php (19): require_once ('E: \ xampp \ htdocs …') # 4 E: \ xampp \ htdocs \ wordpress \ index.php (17): require ('E: \ xampp \ htdocs …') # 5 {main} выбрано в E: \ xampp \ htdocs \ wordpress \ wp-content \ plugins \ woocommerce \ включает \ wc-устаревшие функции. php в строке 677

Solutions Collecting From Web of "Передать параметр на подключенную функцию с помощью настраиваемого шаблона страницы"