wp_cache_get - иерархия меню страниц WordPress

wp_cache_get - иерархия меню страниц WordPress

Есть такая идея, шаблон для WordPress, который я использовал (StudioPress Theme) выводит в верхнем меню все страницы, включая иерархию, мне нужно немного изменить функцию, чтобы она выводила только страницы первого уровня, Вот исходный код, вытягивающий страницы (header.php):

function get_the_pa_ges() {
	global $wpdb;
	if ( ! $these_pages = wp_cache_get('these_pages', 'pages') ) {
		$these_pages = $wpdb->get_results('select ID, post_title from '. $wpdb->posts .' where post_status = "publish" and post_type = "page" order by ID');
	}
	return $these_pages;
}

Есть решение: Пришлось порыть интернет и порыться в базе, так как раньше сильно то в WordPress и его шаблонами и не работал. Чтобы узнать иерархию построения страниц воспользовался phpMyAdmin, и SQL запросом:

SELECT * FROM `wp_posts` WHERE post_type = 'page' LIMIT 0 , 30

Получил результат, узнал, что иерархия вся прописывается в колонке: post_parent, немного видоизменил запрос на выборку категорий в меню, т.е.:

function get_the_pa_ges() {
	global $wpdb;
	if ( ! $these_pages = wp_cache_get('these_pages', 'pages') ) {
		$these_pages = $wpdb->get_results('select ID, post_title from '. $wpdb->posts .' where post_status = "publish" and post_type = "page" and post_parent = "0" order by ID');
	}
	return $these_pages;
}

И…. Добился нужного результата, в меню выводятся страницы только первого уровня!

По запросу Валерия дополняю статью (По первому вопросу от 04.02.2010), задача: изменить сортировку страниц, если им присвоены номера вывода. Беру функцию, измененную выше (думаю все равно сортировать придется страницы только первого уровня), сортировка страниц прописана в колонке menu_order, чуть изменил код:

function get_the_pa_ges() {
	global $wpdb;
	if ( ! $these_pages = wp_cache_get('these_pages', 'pages') ) {
		$these_pages = $wpdb->get_results('select ID, post_title from '. $wpdb->posts .' where post_status = "publish" and post_type = "page" and post_parent = "0" order by menu_order');
	}
	return $these_pages;
}

Итак, сортировка страниц теперь будет осуществляться по проставленным из админки номерам страницы.