Intereting Posts
Получить данные корзины из идентификатора заказа в woocommerce? Кошение сайта в другой домен простейшим способом Пользовательский register_taxonomy не показывает пользовательское меню Nav .htaccess – перенаправление дублированного сообщения заканчивается на '-number /' на тот же URL-адрес без номера -number / случайные сообщения не работают WP фильтр для изменения стилей администрирования CSS? Как изменить запрос sql для wp_get_archive () Общее количество сообщений в запросе (категория / тег / автор / результаты поиска / главная страница …) добавить функцию PHP в the_content Все мои собственные стили Bootstrap не работают в моей дочерней теме! Как добавить / получить ссылку на сообщение? Исключить тип сообщения с pre_get_posts? Выдача имени пользовательской таксономии Изменение цикла на пользовательской странице, странное поведение Пользовательский режим темы – Условные элементы управления

Каков правильный способ передачи параметров в функции

Я использую следующий код и вызывая функцию со страницы. Он не отвечает.

add_shortcode('my_ttcode', 'create_my_shortcode'); function create_my_shortcode($key1, $key2){ global $wpdb; $result = $wpdb -> get_results ( " SELECT * FROM wp_villageleaderdb WHERE VillageID = $key1 AND VillageLeaderPosition = $key2 LIMIT 0, 100 ", 'ARRAY_N' ); var_dump($result); //return $result[0][1] . "<br />"; $data = ''; $i = 0; foreach( $result as $single_result ){ $data .= $result[$i][1] . "<br />"; $i++; } 

Вместо $ key1 и $ key2, если значения указаны, он работает нормально.

Вызов со страницы wordpress

 [my_ttcode (V001, Sarpanch)] 

Каков правильный путь?

Я пробовал, но параметр не проходит. вот код.

  add_shortcode('vill_problems', 'get_villageproblems'); function get_villageproblems($atts){ extract(shortcode_atts( array( 'villid' => "V000", ), $atts )); global $wpdb; $result = $wpdb -> get_results ( " SELECT * FROM wp_villageleaderdb WHERE VillageID = $villid LIMIT 0, 100 ", 'ARRAY_N' ); $i = 0; foreach( $result as $single_result ){ $data .= $result[$i][1] . "<br />"; $i++; } return $data . "<br />"; } 

Solutions Collecting From Web of "Каков правильный способ передачи параметров в функции"

В фрагменте кода OP есть проблемы:

  • Отсутствует shortcode_atts() для обработки атрибутов по умолчанию.
  • Неправильно определяя входной аргумент create_my_shortcode( $attr = [], $content = null ){ ... } , используйте вместо этого функцию create_my_shortcode( $attr = [], $content = null ){ ... }
  • Не избегая ввода пользователя, проверьте, например, wpdb::prepare() . Мы хотим избежать возможных инъекций SQL.
  • Использует префикс wp_ table , wp_ , вместо $wpdb->prefix .
  • Выбирает все поля с помощью SELECT * . Лучше получить только то, что нужно.
  • Не возвращать вывод из обратного вызова короткого кода.
  • Неправильно устанавливать атрибуты [my_ttcode key1="V001" key2="Sarpanch"] следует вызывать из содержимого, например: [my_ttcode key1="V001" key2="Sarpanch"] но используйте более качественные описательные атрибуты вместо key1 и key2 .
  • Может быть, не использовать WP_DEBUG при разработке, так как будут, например, PHP-уведомления из. не инициализируя строку $data перед добавлением к ней.
  • Не отступать от кода должным образом, затрудняет поддержку и понимание проектов кода.

Проверьте, например, Codex для получения более общей информации о коротких кодах .

Надеюсь, поможет!