Obter todas as páginas como cadeias na matriz

Eu tento de alguma forma obter uma variedade de nomes de páginas. Eu não acho que é possível em algum método padrão do WP.

 '', 'child_of' => 0, 'date_format' => get_option('date_format'), 'depth' => 0, 'echo' => 0, 'exclude' => '', 'include' => '', 'link_after' => '', 'link_before' => '', 'post_type' => 'page', 'post_status' => 'publish', 'show_date' => '', 'sort_column' => 'menu_order, post_title', 'sort_order' => '', 'title_li' => __('Pages'), 'walker' => new Walker_Page ) ;?> $arr = wp_list_pages($args); print_r($arr); 

Mas este retorno LINK-s “” tags … Talvez no PHP eu posso de alguma forma “transfrom” este links para string? 🙂

Solutions Collecting From Web of "Obter todas as páginas como cadeias na matriz"

Use get_pages() para buscar uma matriz de objects de página e, em seguida, passar esse resultado para wp_list_pluck() para extrair uma matriz de apenas títulos de página:

 $page_titles = wp_list_pluck( get_pages(), 'post_title' ); print_r( $page_titles ); 

Tal como acontece com a maioria das tarefas no desenvolvimento web, há mais de uma maneira de conseguir isso. Minha sugestão é usar WP_Query e obter todas as páginas por tipo de publicação .

 $args = array( 'post_type' => 'page', 'posts_per_page' => -1 ); $the_query = new WP_Query( $args ); ?> //Loop here.... 

EDITAR: depois de reler sua pergunta, vejo que não notei o requisito “array”. Essa abordagem cria uma nova instância da class WP_Query e retorna um object, não uma matriz. Com isso em mente, a versão corrigida segue:

 < ?php $page_titles = array(); $args = array( 'post_type' => 'page', 'posts_per_page' => -1 ); $the_query = new WP_Query( $args ); // If there are pages, let's loop if($the_query->have_posts()): while($the_query->have_posts()): $the_query->the_post(); $page_titles[] = get_the_title(); // Add each page title to your array endwhile; else : // Do stuff if no pages endif; // Display array contents echo '
'; print_r($page_titles); echo '

'; ?>