Intereting Posts
Как ограничить глубину иерархических страниц (для пользовательских типов сообщений) Только для детей Как вызвать конкретную функцию, когда флажок установлен на странице параметров плагина Добавьте предопределенные / значения по умолчанию в настраиваемый плагин post Как создать карту сайта с настраиваемыми сообщениями (не Google XML) Как переносить / WordPress папку с одного ПК на другой Как периодически очищать и кэшировать строки из удаленных файлов txt. – Мой первый плагин Невозможно вставить внутренние ссылки и ошибки меню. Невозможно добавить класс в тег h2 Комментарии не появляются вообще Принуждение заголовка текстового виджета к новой строке в области администратора Почему в wp_get_attachment_image_attributes отсутствует правообладание? get_post_metadata приводит к сбою некоторых метаданных Как разрешить выходить из системы пользователям просматривать панель? JSON – ошибка разрешения? the_excerpt () не показывает ручную выдержку для страниц

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

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

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 для получения более общей информации о коротких кодах .

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