如何对wp_dropdown_ages()SELECT中的选项进行编号?

时间:2015-12-05 作者:JVC

我正在使用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()?

2 个回复
最合适的回答,由SO网友:birgire 整理而成

要更改

<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 这只是一个测试,看看我是否能找到“任何”理论上的解决方法。

SO网友:sMyles

仅供参考我创建了一个要添加的函数wp_dropdown_posts():

https://github.com/tripflex/wp_dropdown_posts

相关推荐

$wpdb selects wrong database

我在另一个WordPress网站的文件夹中创建了一个新的WordPress网站。示例-主站点。com-mainsite。com/第二站点我创建了一个插件,并使用$wpdb 将数据插入数据库,插件将数据插入第一个/父站点的数据库。我使用的代码包括$wpdb 如下所示:$path = $_SERVER[\'DOCUMENT_ROOT\']; include $path . \'/wp-load.php\'; include $path . \'/wp-config.php\'; inc