#php #wordpress
#php #wordpress
Вопрос:
Я разработчик, но неопытен в PHP или WordPress. Возиться с существующим сайтом WP (используя тему Divi, если это имеет значение) и хотеть создать несколько коротких кодов, которые извлекаются из базы данных WP. Экспериментируя, я смог заставить работать некоторые пользовательские шорткоды (включая новый файл в тему functions.php). Основные из них работают нормально, но когда я пытаюсь читать из wpdb, страница выдает эту ошибку:
Error: Call to undefined function get_results() in lt;MY_FILEgt;
Вот мое досье:
lt;?php function list_users() { global $wpdb; $users = get_results("SELECT * FROM $wpdb-gt;users"); $result = "lt;pgt;"; foreach ($results as $result) { $result .= $result-gt;display_name; $result .= 'lt;brgt;'; } $result .= "lt;/pgt;"; return $result; } add_shortcode( 'all_users', 'list_users' ); ?gt;
Есть какие-нибудь советы новичку в PHP?
Комментарии:
1.
$query= "SELECT * FROM users"; $users = $wpdb-gt;get_results($query);
Может быть, именно так вы и должны это написать
Ответ №1:
Вам не нужно получать пользователей из запроса базы данных. WordPress предоставляет get_users
функции. Итак, вы можете попробовать использовать приведенный ниже код.
function list_users() { ob_start(); $users = get_users(); foreach( $users as $user ) { echo 'lt;pgt;'. $user-gt;data-gt;display_name .'lt;/pgt;'; } $output = ob_get_contents(); ob_end_clean(); return $output; } add_shortcode( 'all_users', 'list_users' );
Комментарии:
1. Спасибо за ответ. Мне нужно использовать гораздо более сложные запросы ко многим различным таблицам. Это был просто тест, чтобы попытаться извлечь данные из базы данных.
Ответ №2:
Хорошо, ответ был очевиден, так как я не вызывал get_results в $wpdb.
Это решило проблему:
lt;?php function list_users() { global $wpdb; $users = $wpdb-gt;get_results("SELECT * FROM $wpdb-gt;users"); $result = "lt;pgt;"; foreach ($results as $result) { $result .= $result-gt;display_name; $result .= 'lt;brgt;'; } $result .= "lt;/pgt;"; return $result; } add_shortcode( 'all_users', 'list_users' ); ?gt;