侧边栏的下拉列表代码

时间:2018-04-04 作者:rolandogomez

首先,我不是程序员,但我擅长剪切和粘贴。:)我想创建一个下拉列表来显示每一篇文章,我已经将其放入了我的函数中。php子主题文件使用以下代码:

function wpb_recentposts_dropdown() { 
    $string .= \'<select id="rpdropdown">
    <option  value="" selected>Select a Post<option>\';
    $args = array( \'numberposts\' => \'5\', \'post_status\' => \'publish\' );
    $recent_posts = wp_get_recent_posts($args);
    foreach( $recent_posts as $recent ){
        $string .= \'<option value="\' . get_permalink($recent["ID"]) . \'">\' 
. $recent["post_title"].\'</option> \';
    }
    $string .= \'</select>
<script type="text/javascript"> var urlmenu =  
document.getElementById( "rpdropdown" ); urlmenu.onchange =
function() {
window.open( this.options[ this.selectedIndex ].value, "_self" );
        };
</script>\';
    return $string;
} 
add_shortcode(\'rp_dropdown\', \'wpb_recentposts_dropdown\');
add_filter(\'widget_text\',\'do_shortcode\');
我在我的小部件中使用了简短的代码【rp\\U下拉列表】,它可以正常工作。问题是它会显示每个类别的帖子。我需要它显示一个特定的类别,我也希望它是字母顺序。有人能告诉我如何用外行的话说做到这一点吗?非常感谢。

2 个回复
SO网友:Samuel Asor

好吧,按照“门外汉”的说法,您需要将首选过滤器(特定类别id和顺序)添加到$args 数组,如下所示:

$args = array( 
    \'numberposts\' => \'5\', 
    \'post_status\' => \'publish\', 
    \'cat\' => 5, 
    \'order\' => \'ASC\',
    \'orderby\' => \'title\'
);
The\'cat\' 应该是id 要显示的“特定”类别的。

希望这有帮助。

SO网友:Krzysiek Dróżdż

好的,假设您希望始终按相同的类别进行筛选(假设term\\u ID=28),那么您的代码应该如下所示:

function wpb_recentposts_dropdown() { 
    $string .= \'<select id="rpdropdown">\' .
        \'<option  value="" selected>Select a Post<option>\';

    $args = array(
        \'numberposts\' => \'5\',
        \'post_status\' => \'publish\',
        \'cat\' => 28, // <- this filters by category
        \'orderby\' => \'title\', // <- this orders by title
        \'order\' => \'ASC\' // <- this changes order to ascending (DESC is default)
    );
    $recent_posts = wp_get_recent_posts($args);
    ... // <- rest of your code
如果您想将该类别ID作为shortcode的属性传递,那么类似的内容应该可以帮助您:

function wpb_recentposts_dropdown( $atts ) { 
    $a = shortcode_atts( array(
        \'cat\' => false, // <- you can put default cat ID here
    ), $atts );

    $string .= \'<select id="rpdropdown">\' .
        \'<option  value="" selected>Select a Post<option>\';

    $args = array(
        \'numberposts\' => \'5\',
        \'post_status\' => \'publish\',
        \'orderby\' => \'title\', // <- this orders by title
        \'order\' => \'ASC\' // <- this changes order to ascending (DESC is default)
    );
    if ( is_numeric($a[\'cat\']) ) {
        $args[\'cat\'] = $a[\'cat\'];
    }
    $recent_posts = wp_get_recent_posts($args);
    ... // <- rest of your code

结束

相关推荐

WP_DROPDOWN_CATEGORIES-如何在Widget中保存?

我想用wp_dropdown_categories 在自定义小部件中。所有内容都显示得很好,但由于某些原因,无法正确保存。这是form() 和update() 小部件的功能-我做错什么了吗?public function form( $instance ) { /* Set up some default widget settings. */ $defaults = array( \'title\' => \'Classes by Category\' );&#x