要更改
<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;
但是我
absolutely don\'t recommend 这只是一个测试,看看我是否能找到“任何”理论上的解决方法。