-1

我为 WPBakery 插件创建了一个自定义元素。我已经为这个元素绘制了一个简单的复选框:

array(
    'type' => 'checkbox',
    'heading' => esc_html__( 'Add box shadow?', 'js_composer' ),
    'param_name' => 'add_boxShadow',
    'value' => array('Yes' => 'true'),
    'std' => false,
    'description' => esc_html__('Ticking this will add a shadow below the row.'),
    'group' => __( 'Custom', 'my-text-domain' ),
)

我已经像这样初始化它:

$output = ""; 
extract(
      shortcode_atts(
        array(
          'add_boxShadow' => false,
          // 'add_boxShadow' => '', have also tried this
        ),
      $atts
      )
    );

并像这样输出:

<?php 
$shadowBottom = "";
($add_boxShadow = true ? $shadowBottom = "shadow__bottom" : ""); 

$output .= '<div class="wrapper'.$shadowBottom.' "> test </div>';
return $output;
?>

综上所述,我遇到了以下问题:

  1. 一个var_dump($add_boxShadow)返回bool(false) bool(false)。我猜这是因为初始化 var 时, $add_boxShadow 设置为 false ( 'add_boxShadow' => false)。但是,我这样做是为了取消选中我的默认复选框。

  2. 在 WPBakery 页面构建器中,该字段的外观如下:

在此处输入图像描述

这很好,默认情况下未选中这是我想要的。但是,如果我然后勾选复选框,保存并更新页面,当我返回该块设置时,该复选框仍然未选中。几乎就好像它总是被渲染为假?

4

1 回答 1

0

std 选项默认为 false。所以你不需要写假的。我发现您在方法中遗漏了 shorcode 名称的另一件事shortcode_atts,这可能是您的问题的另一个原因。请找到以下有帮助的代码:

   array(
        'type' => 'checkbox',
        'heading' => esc_html__( 'Add box shadow?', 'js_composer' ),
        'param_name' => 'add_boxShadow',
        'value' => array('Yes' => 'true'),
        'description' => esc_html__('Ticking this will add a shadow below the row.'),
        'group' => __( 'Custom', 'my-text-domain' ),
    )

    extract( shortcode_atts( array(
                    'add_boxShadow'=>'',
                ), $atts,'<shrotcodename>' ) );


  if($ze_coming_soon_days=='Yes') //code for yes
  {
    //code
  }
于 2019-08-20T11:04:09.480 回答