Как указать число в параметре wp_dropdown_pages ()?

Я использую wp_dropdown_pages() но хотел бы wp_dropdown_pages() число, возвращаемое пользователю. Поэтому вместо чего-то вроде …

 <option value='http://someurl'>item one</option> <option value='http://someurl'>item two</option> <option value='http://someurl'>item three</option> 

Я получаю:

 <option value='http://someurl'>1. page one</option> <option value='http://someurl'>2. page two</option> <option value='http://someurl'>3. page three</option> 

Как можно было бы сделать это с выходом wp_dropdown_pages() ?

Изменить

 <option value='http://someurl'>item one</option> <option value='http://someurl'>item two</option> <option value='http://someurl'>item three</option> 

в

 <option value='http://someurl'>1. item one</option> <option value='http://someurl'>2. item two</option> <option value='http://someurl'>3. item three</option> 

мы можем использовать фильтр list_pages из Walker_PageDropdown::start_el() .

Вот пример:

 // Add filter add_filter( 'list_pages', 'wpse_itemize', 10, 2 ); // Display dropdown wp_dropdown_pages(); // Remove filter remove_filter( 'list_pages', 'wpse_itemize' ); 

где обратный вызов определяется как:

 function wpse_itemize( $title, $page ) { static $nr = 1; return sprintf( '%d. %s', $nr++, $title ); } 

Обновить

Для пользовательской функции wp_dropdown_posts() вы можете попробовать:

 if( function_exists( 'wp_dropdown_posts' ) ) { // Add filter add_filter( 'esc_html', 'wpse_itemize' ); // Display dropdown wp_dropdown_posts(); // Remove filter remove_filter( 'esc_html', 'wpse_itemize' ); } 

где обратный вызов определяется как:

 function wpse_itemize( $safe_text ) { static $nr = 1; return sprintf( '%d. %s', $nr++, $safe_text ); } 

Заметка

Мне было просто любопытно, как мы могли бы добавить поддержку post post type для wp_dropdown_pages() и получили это с помощью этого взлома:

 global $wp_post_types; $wp_post_types['post']->hierarchical = true; wp_dropdown_pages( [ 'post_type' => 'post' ] ); $wp_post_types['post']->hierarchical = false; 

но я абсолютно не рекомендую это, это был просто тест, чтобы увидеть, могу ли я найти «любое» теоретическое решение.

Просто FYI я создал функцию для добавления wp_dropdown_posts() :

https://github.com/tripflex/wp_dropdown_posts