Commit ee3beccbd1 for wordpress.org
commit ee3beccbd150fce4fb508c7a597d876b6dfc1693
Author: Sergey Biryukov <sergeybiryukov.ru@gmail.com>
Date: Fri Jul 26 07:56:13 2024 +0000
General: Cast `$max_depth` and `$depth` to an integer in the `Walker` class.
This ensures that the arguments are correctly interpreted when passed as a query string, i.e. when `wp_parse_args()` is involved. For example, `wp_list_pages( 'depth=0' )` should display a list of all pages to the maximum depth.
Follow-up to [57848].
Props freibergergarcia, peterwilsoncc, ahortin.
Fixes #61749.
Built from https://develop.svn.wordpress.org/trunk@58812
git-svn-id: http://core.svn.wordpress.org/trunk@58208 1a063a9b-81f0-0310-95a4-ce76da25c4cd
diff --git a/wp-includes/class-wp-walker.php b/wp-includes/class-wp-walker.php
index ff5eac2f50..df67921c27 100644
--- a/wp-includes/class-wp-walker.php
+++ b/wp-includes/class-wp-walker.php
@@ -135,6 +135,9 @@ class Walker {
return;
}
+ $max_depth = (int) $max_depth;
+ $depth = (int) $depth;
+
$id_field = $this->db_fields['id'];
$id = $element->$id_field;
@@ -191,6 +194,8 @@ class Walker {
public function walk( $elements, $max_depth, ...$args ) {
$output = '';
+ $max_depth = (int) $max_depth;
+
// Invalid parameter or nothing to walk.
if ( $max_depth < -1 || empty( $elements ) ) {
return $output;
@@ -285,12 +290,14 @@ class Walker {
* @return string XHTML of the specified page of elements.
*/
public function paged_walk( $elements, $max_depth, $page_num, $per_page, ...$args ) {
+ $output = '';
+
+ $max_depth = (int) $max_depth;
+
if ( empty( $elements ) || $max_depth < -1 ) {
- return '';
+ return $output;
}
- $output = '';
-
$parent_field = $this->db_fields['parent'];
$count = -1;
diff --git a/wp-includes/version.php b/wp-includes/version.php
index c28e9d35db..5877f19465 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
-$wp_version = '6.7-alpha-58811';
+$wp_version = '6.7-alpha-58812';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.