WP_DROPDOWN_CATEGORIES未将选项显示为选定

时间:2019-01-23 作者:Aparna Mathew

我使用下面的代码将类别按层次列出。更改选择选项时,它将重定向到相应的类别页面。但它不显示所选的类别。谁能帮我一下吗?

$terms = wp_dropdown_categories(array(
        \'taxonomy\' => \'news-categories\',
        \'hierarchical\' => 1,
        \'show_option_none\' => "CATEGORIES",
        \'option_none_value\' => "",
        \'name\' => \'news_cat_name\',
        \'id\' => \'cat_search\',
        \'value_field\' => \'slug\',
        \'selected\' => 1,
));
JavaScript:

$(\'#cat_search\').change(function () {
    if ($(this).val()) {

        window.location = "<?php echo esc_url(home_url(\'/\')); ?>news-categories/" + $(this).val();
    }
});

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好吧,我想你已经把这段代码放在了类别存档中,下拉列表总是显示相同的类别,对吗?

这正是它对当前代码应该做的。在此行中:

    \'selected\' => 1,
您决定选择值为1的项目。可能没有这样的值(1不经常作为术语slug出现),因此选择了第一项。

那么代码应该是什么样子呢?

您应该将适当的值传递为selected 参数。如果您在类别存档页面上显示此下拉列表,则可以使用get_queried_object() 获取当前类别的函数:

$current_category = get_queried_object();
$terms = wp_dropdown_categories(array(
        \'taxonomy\' => \'news-categories\',
        \'hierarchical\' => 1,
        \'show_option_none\' => "CATEGORIES",
        \'option_none_value\' => "",
        \'name\' => \'news_cat_name\',
        \'id\' => \'cat_search\',
        \'value_field\' => \'slug\',
        \'selected\' => $current_category->slug,
));