Как получить имена колонок таблицы базы данных WordPress

Click here to view original web page at wp-kama.ru

В этой заметке покажу пример, как получить названия столбцов указанной таблицы MySQL в WordPress.

Это может быть полезно при работе с пользовательскими таблицами. В частности:

  • Когда нужно собрать заголовки для формирования эксель таблицы.
  • Когда нужно добавить или удалить колонку таблицы, но перед этим проверить есть ли вообще такая колонка.
  • и т.д.

MySQL Команда DESC

DESC команда получает только названия колонок таблицы MySQL:

global $wpdb;

$columns = $wpdb->get_col( "DESC wp_terms" );

print_r( $columns );

/*
Array
(
	[0] => term_id
	[1] => name
	[2] => slug
	[3] => term_group
	[4] => term_order
)
*/

MySQL Команда DESCRIBE

Получает более подробную информацию о колонках таблицы MySQL:

global $wpdb;

$result = $wpdb->get_results( "DESCRIBE wp_terms" );
// или можно
$result = $wpdb->get_results( "SHOW COLUMNS FROM wp_terms" );

print_r( $result );

/*
Array
(
	[0] => stdClass Object
		(
			[Field] => term_id
			[Type] => bigint(20) unsigned
			[Null] => NO
			[Key] => PRI
			[Default] =>
			[Extra] => auto_increment
		)

	[1] => stdClass Object
		(
			[Field] => name
			[Type] => varchar(200)
			[Null] => NO
			[Key] => MUL
			[Default] =>
			[Extra] =>
		)

	[2] => stdClass Object
		(
			[Field] => slug
			[Type] => varchar(200)
			[Null] => NO
			[Key] => MUL
			[Default] =>
			[Extra] =>
		)

	[3] => stdClass Object
		(
			[Field] => term_group
			[Type] => bigint(10)
			[Null] => NO
			[Key] =>
			[Default] => 0
			[Extra] =>
		)

	[4] => stdClass Object
		(
			[Field] => term_order
			[Type] => int(4)
			[Null] => YES
			[Key] =>
			[Default] => 0
			[Extra] =>
		)
)
*/

С помощью DESCRIBE также можно получить только названия колонок таблицы:

global $wpdb;

$result = $wpdb->get_results( "DESCRIBE wp_terms" );

$columns = wp_list_pluck( $result, 'Field' );

print_r( $columns );

/*
Array
(
	[0] => term_id
	[1] => name
	[2] => slug
	[3] => term_group
	[4] => term_order
)
*/