Intereting Posts
Добавить пользовательское поле для пользователей Добавить класс CSS в кнопку добавления в корзину, Woocommerce Вставка больших объемов данных в пользовательскую таблицу во время установки плагина Сохранять теги, сохраняя как теги, так и теги идентификаторов при постовом обновлении, когда теги отображаются как флажки Перемещение комментариев только с одной установки WP на другую Как указать число в параметре wp_dropdown_pages ()? Пользовательский архив таксономии возвращает 404 В шаблоне страницы отсутствуют поля или неверно, когда я обновляю шаблон Получить миниатюру сообщения в виде массива Многодольные субдомены приводят к запрету 403 Назначать опубликованные сообщения другому пользователю автоматически Разный css-файл не работает для шаблона страницы, который я создал Добавить поле в сообщения (флажок), который может иметь только один пост Мета-окно WordPress и флажок-список Сохранить данные в формате xml

Как создать короткий код с 1 параметром (atts)

У меня возникли проблемы с получением короткого кода для работы с 1 атрибутом.

Вот мой [sme_user-email userID="2"]

Вот мои сценарии – никто из них не работает.

 function getUserEmail_func($atts) { extract(shortcode_atts(array('userID' => 1,), $atts)); $user_info = get_userdata($atts); return $user_info->user_email; } add_shortcode('sme_user-email', 'getUserEmail_func'); 

,

 function getUserEmail_func($atts) { $user_info = get_userdata($atts); return $user_info->user_email; } add_shortcode('sme_user-email', 'getUserEmail_func'); 

,

 function getUserEmail_func($atts) { $user_info = get_userdata($atts['userID'); return $user_info->user_email; } add_shortcode('sme_user-email', 'getUserEmail_func'); 

Это работает, но я не хочу жестко указывать идентификатор пользователя. Я надеялся, что смогу сделать это динамически

 function getUserEmail_func($atts) { $user_info = get_userdata(2); return $user_info->user_email; } add_shortcode('sme_user-email', 'getUserEmail_func'); 

Solutions Collecting From Web of "Как создать короткий код с 1 параметром (atts)"

Вот как вы должны создать короткий код.

Сначала вам нужно будет определить $atts item в get_userdata потому что $atts – это массив. Также я думаю, что есть также некоторые проблемы с именами верхних регистров, поэтому вы должны использовать атрибут в нижнем регистре. Поэтому вместо userID используйте userid .

 function getUserEmail_func( $atts ) { $user_info = get_userdata( $atts['userid'] ); return $user_info->user_email; } add_shortcode( 'sme_user-email', 'getUserEmail_func' ); 

Протестируйте его, и он работает.