Wordpress 如何在cmb2插件上创建条件字段?

Wordpress 如何在cmb2插件上创建条件字段?,wordpress,Wordpress,我想为我的会员信息页面设置一个条件 $biometabox[] = array( 'id' => 'first-section', 'title' => 'Member Data', 'object_types' => array('dausfmembers'), 'fields' => array( array( 'name' => 'Gender',

我想为我的会员信息页面设置一个条件

$biometabox[] = array(
        'id' => 'first-section',
        'title' => 'Member Data',
        'object_types' => array('dausfmembers'),
        'fields' => array(
            array(
            'name' => 'Gender',
            'type' => 'radio',
            'id' => $dausf.'gender',
            'options' => array(
                'Male' => 'Male',
                'Female' => 'Female'
            )
        ),  
        array(
            'name' => 'Gender',
            'type' => 'radio',
            'id' => $dausf.'mstatus',
            'options' => array(
                'Married' => 'Married',
                'Single' => 'Single'
            )
        ), 
我想让如果女性和已婚显示在管理面板这个文件

                   array(
                        'name' => 'Husband Name',
                        'type' => 'text',
                        'id' => $dausf.'hname',
                    ),
有人能帮我解决这个问题吗?

“条件字段”似乎还没有集成到CMB2核心中。然而,有一个名为的插件可以帮助您实现所需的功能

安装和设置插件后,只需按如下方式设置字段即可实现:

特别注意
'attributes'
键,您可以按照插件的说明使用它

$biometabox[] = array(
    'id' => 'first-section',
    'title' => 'Member Data',
    'object_types' => array('dausfmembers'),
    'fields' => array(
        array(
         'name' => 'Gender',
         'type' => 'radio',
         'id' => $dausf.'gender',
         'options' => array(
            'Male' => 'Male',
            'Female' => 'Female',
        ),
         'attributes' => array(
         'required'    => 'required',
        )
    ),  
        array(
         'name' => 'Gender',
         'type' => 'radio',
         'id' => $dausf.'mstatus',
         'options' => array(
            'Married' => 'Married',
            'Single' => 'Single',
         ),
         'attributes' => array(
         'required'    => 'required',
        )
    ), 
        array(
         'name' => 'Husband Name',
         'type' => 'text',
         'id' => $dausf.'hname',
         'required' => true,
        ),
         'attributes' => array(
         'required' => true, // Will be required only if visible.
         'data-conditional-id' => $prefix . 'gender',
         'data-conditional-value' => 'Female',
    ),
         'attributes' => array(
         'required' => true, // Will be required only if visible.
         'data-conditional-id' => $prefix . 'mstatus',
         'data-conditional-value' => 'Married',
    ),
...

) );
您需要在此处检查插件的示例函数:


我希望你能设法使它发挥作用。祝您好运。

尽管这可能有点复杂,但您也可以编写自定义jQuery脚本,根据所选选项显示和隐藏字段:

在您的主题目录中添加两个名为“js”和“css”的文件夹(如果它们还不存在的话)

然后在/js中创建一个名为“admin_scripts.js”的文件。并在/css中创建一个名为“admin.css”的文件

因此,您将有:

主题目录/css/admin.css
主题目录/js/admin\u scripts.js

在functions.php中添加以下内容:

function admin_scripts() {
// Adding custom admin scripts file
wp_enqueue_script( 'admin-js', get_template_directory_uri() . '/js/admin_scripts.js', array( 'jquery' ));

// Registering and adding custom admin css
wp_register_style( 'custom_wp_admin_css', get_template_directory_uri() . '/css/admin.css', false, '1.0.0' );
wp_enqueue_style( 'custom_wp_admin_css' ); 
}
.cmb2-field-to-display-on-select {
    display:none;
}
然后在该函数下方添加:

add_action('admin_enqueue_scripts'、'admin_scripts')

在js/admin_scripts.js中添加以下内容(记住将ID和类更改为字段的ID和类)

并在css/admin.css中添加以下内容:

function admin_scripts() {
// Adding custom admin scripts file
wp_enqueue_script( 'admin-js', get_template_directory_uri() . '/js/admin_scripts.js', array( 'jquery' ));

// Registering and adding custom admin css
wp_register_style( 'custom_wp_admin_css', get_template_directory_uri() . '/css/admin.css', false, '1.0.0' );
wp_enqueue_style( 'custom_wp_admin_css' ); 
}
.cmb2-field-to-display-on-select {
    display:none;
}

它有一个链接,好像它应该在插件目录中,但实际上它不在那里,除非它更改了名称…@Andrew Welch-也许插件还没有被wordpress.org批准,或者作者输入了错误的链接。不管发生了什么,都可以直接从Github下载插件,并将其作为任何其他wordpress插件安装。