php - WordPress 下拉多选选项

标签 php wordpress select multi-select bootstrap-multiselect

我有以下 WordPress 下拉单选选项的代码。 我想让这段代码与多重选择选项一起使用,但不知道如何。 请给出解决方案。

<?php 
        $args=array(
                'class'       => 'select-submit2',
                'hide_empty'  => false,
                'selected'    => $prop_action_category_selected,
                'name'        => 'prop_action_category',
                'id'          => 'prop_action_category_submit',
                'orderby'     => 'NAME',
                'order'       => 'ASC',
                'show_option_none'   => __('None','wordpress'),
                'taxonomy'    => 'property_action_category',
                'hierarchical'=> true
            );

           wp_dropdown_categories( $args );  ?>

亲切的问候

尼古拉塔

最佳答案

wp_dropdown_categories() function 是一个 WordPress 函数,用于创建类别下拉菜单。您可以根据向函数传递各种参数来指定输出方式和内容。

但是,该函数不接受任何参数来将其从单选列表更改为多选列表。

一个简单的方法是更改​​函数生成后提供的输出。这并不总是解决所有问题的最佳方法,但在这种情况下,有两个关键要素使其成为一种简单的方法:

  1. 虽然该函数默认回显(打印)其输出,但它接受一个参数以仅返回 HTML 结果而不输出它(允许您在显示之前对其进行更改)。
  2. 将下拉菜单更改为多选列表就像在 HTML 标记中添加“multiple”一样简单(即将 <select> 更改为 <select multiple>)

您可以调用该函数,在输出之前将结果放入变量中,然后使用 PHP 的 str_replace()在该结果上将“多个”滑入选择标签:

/**
 * Your args from the question
 * plus turning echo off.
 * Note the change to the name (adding "[]")
 */
$args = array(
    'class'       => 'select-submit2',
    'hide_empty'  => false,
    'selected'    => $prop_action_category_selected,
    'name'        => 'prop_action_category[]',
    'id'          => 'prop_action_category_submit',
    'orderby'     => 'NAME',
    'order'       => 'ASC',
    'show_option_none'   => __('None','wpestate'),
    'taxonomy'    => 'property_action_category',
    'hierarchical'=> true,
    'echo'        => 0,
);

/** get the dropdown **/
$dropdown = wp_dropdown_categories( $args );

/** insert "multiple" using str_replace **/
$multi = str_replace( '<select', '<select multiple ', $dropdown );

/** output result **/
echo $multi;

传递“0”的“echo”参数告诉函数不要输出任何内容(根据需要向数组添加任何其他参数)。然后str_replace()对结果运行,结果就是您输出的内容。

请注意,您需要更改“name”参数以传递数组,以便能够传递/获取所有选定的项目。

关于php - WordPress 下拉多选选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29063747/

相关文章:

WHERE 子句中的 mysql SUM()

html - 当列表打开时隐藏选择列表的选定值

php - 将修改后的预序树遍历模型(嵌套集)获取到 <ul>

php - 在轻量级购物网站中数据库相对于 XML 的优势?

css - Bootstrap 旋转木马调整图像大小

CSS 边距问题 - Wordpress

php - 带有php的mySQL上的SQL语法错误

javascript - 如何在json文件中添加或插入记录

wordpress - WP_PROXY_HOST 是否支持 https/socks5 代理?

reactjs - 类型 'number' 不可分配给类型 'SetStateAction<undefined>' 。 - react