add_action('admin_menu', function () { add_submenu_page( 'edit.php?post_type=page', 'Ver Tabla', 'Ver Tabla', 'manage_options', 'ver-tabla-pages', 'render_ver_tabla_pages' ); }); function render_ver_tabla_pages() { $orderby = isset($_GET['orderby']) ? sanitize_text_field($_GET['orderby']) : 'title'; $order = isset($_GET['order']) ? sanitize_text_field($_GET['order']) : 'ASC'; function toggle_order($current_order) { return $current_order === 'ASC' ? 'DESC' : 'ASC'; } function sort_link($label, $column, $current_orderby, $current_order) { $new_order = ($current_orderby === $column) ? toggle_order($current_order) : 'ASC'; $arrow = ''; if ($current_orderby === $column) { $arrow = $current_order === 'ASC' ? ' ↑' : ' ↓'; } $url = add_query_arg([ 'orderby' => $column, 'order' => $new_order ]); return "{$label}{$arrow}"; } // Get all pages $pages = get_posts([ 'post_type' => 'page', 'posts_per_page' => -1, 'orderby' => $orderby, 'order' => $order ]); // Build tree (only useful if sorting by title) $tree = []; $lookup = []; foreach ($pages as $page) { $page->children = []; $lookup[$page->ID] = $page; } foreach ($pages as $page) { if ($page->post_parent && isset($lookup[$page->post_parent]) && $orderby === 'title') { $lookup[$page->post_parent]->children[] = $page; } else { $tree[] = $page; } } // Recursive renderer function render_row($page, $level = 0) { $has_children = !empty($page->children); $indent = str_repeat('— ', $level); $title = esc_html($page->post_title); $url = get_permalink($page->ID); $date_published = get_the_date('Y/m/d', $page->ID); $date_modified = get_the_modified_date('Y/m/d', $page->ID); $edit_link = get_edit_post_link($page->ID); $row_id = 'page-' . $page->ID; $parent_class = $page->post_parent ? 'child-of-' . $page->post_parent : ''; echo ""; echo ""; if ($has_children) { echo " "; } else { echo ""; } echo "{$indent}{$title}"; echo "{$url}"; echo "{$date_published}"; echo "{$date_modified}"; echo " Ver | Editar "; echo ""; // Render children foreach ($page->children as $child) { render_row($child, $level + 1); } } ?>

Tabla de Páginas

children = []; render_row($page); } } } else { echo ""; } ?>
URL Acciones
No hay páginas.