WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
функция не описана

WP_Rewrite::page_uri_index() public WP 2.5.0

Retrieves all page and attachments for pages URIs.

The attachments are for those that have pages as parents and will be retrieved.

Это метод класса: WP_Rewrite{}

Хуков нет.

Возвращает

Массив. Array of page URIs as first element and attachment URIs as second element.

Использование

$WP_Rewrite = new WP_Rewrite();
$WP_Rewrite->page_uri_index();

Заметки

  • Global. wpdb. $wpdb WordPress database abstraction object.

Список изменений

С версии 2.5.0 Введена.

Код WP_Rewrite::page_uri_index() WP 5.5.1

wp-includes/class-wp-rewrite.php
<?php
public function page_uri_index() {
	global $wpdb;

	// Get pages in order of hierarchy, i.e. children after parents.
	$pages = $wpdb->get_results( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_type = 'page' AND post_status != 'auto-draft'" );
	$posts = get_page_hierarchy( $pages );

	// If we have no pages get out quick.
	if ( ! $posts ) {
		return array( array(), array() );
	}

	// Now reverse it, because we need parents after children for rewrite rules to work properly.
	$posts = array_reverse( $posts, true );

	$page_uris            = array();
	$page_attachment_uris = array();

	foreach ( $posts as $id => $post ) {
		// URL => page name.
		$uri         = get_page_uri( $id );
		$attachments = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d", $id ) );
		if ( ! empty( $attachments ) ) {
			foreach ( $attachments as $attachment ) {
				$attach_uri                          = get_page_uri( $attachment->ID );
				$page_attachment_uris[ $attach_uri ] = $attachment->ID;
			}
		}

		$page_uris[ $uri ] = $id;
	}

	return array( $page_uris, $page_attachment_uris );
}