Wordpress+可视化编辑器=最好的系统+零基础制作网页

网站上所有布局,颜色与设置均可在后台修改,无需编程基础

Avada主题将新设置添加到选项面板

2019-11-11 / 分类: /  评论数量:0

要将元素设置添加到元素选项面板,您需要使用过滤器来创建扩展到Fusion_Element类的选项类,该类将在过滤器中提供。 所以,您可以像这样添加过滤器:

function fusion_init_sample_options() {
require_once 'options/sample-options.php';
}

add_action( 'fusion_builder_shortcodes_init', 'fusion_init_sample_options' );

这将要求您在名为sample-options.php的options文件夹中添加另一个文件。 其中,您需要检查类Fusion_Elements并为选项创建新类并将其继承到Fusion_Element类。

完成类创建后,只需在类中添加一个新函数add_options(),它将用于自动将选项面板添加到选项面板,如下所示 -

该示例是一个完整的类,它将示例元素设置添加到选项面板。

if ( class_exists( 'Fusion_Element' ) ) {
class SampleElementOptions extends Fusion_Element {
public function __construct() {
parent::__construct();
}

public function add_options() {
return array(
'sample_shortcode_section' => array(
'label' => esc_html__( 'Sample Element', 'fusion-builder' ),
'description' => '',
'id' => 'sample_shortcode_section',
'type' => 'sub-section',
'fields' => array(
'sample_dates_box_color' => array(
'label' => esc_html__( 'Sample Color Picker', 'fusion-builder' ),
'description' => esc_html__( 'This is just an example of color picker setting field.', 'fusion-builder' ),
'id' => 'sample_dates_box_color',
'default' => '#eef0f2',
'type' => 'color-alpha',
),

'dropdown_field' => array(
'label' => esc_html__( 'Sample Dropdown Field', 'fusion-builder' ),
'description' => esc_html__( 'This is just an example of drpdown setting field.', 'fusion-builder' ),
'id' => 'dropdown_field',
'default' => '1',
'type' => 'select',
'choices' => array(
'1' => esc_html__( 'Option 1', 'fusion-builder' ),
'2' => esc_html__( 'Option 2 with "Quotes"', 'fusion-builder' ),
'3' => esc_html__( 'Option 3', 'fusion-builder' ),
),
),
),
),
);
}
}

new SampleElementOptions;

}

您可以使用我们创建的示例插件来更好地理解选项的实现。

相关选项

将设置添加到选项面板后,还可以利用选项相关性。这意味着,当您在生成器中编辑元素时,当前默认值将与“选项”面板中该设置的链接一起显示。为此,可以使用元素类中的过滤器。

例如,构造函数将变成:

public function __construct() {
parent::__construct();
add_filter( 'fusion_builder_map_descriptions', array( $this, 'add_option_description' ) );
}

然后在下面添加了一个新函数:

public function add_option_description( $shortcode_option_map ) {

$shortcode_option_map['portfolio_layout_padding']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_layout_padding', 'subset' => array( 'top', 'right', 'bottom', 'left' ) );
$shortcode_option_map['picture_size']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_featured_image_size', 'type' => 'select' );
$shortcode_option_map['boxed_text']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_text_layout', 'type' => 'select' );
$shortcode_option_map['portfolio_text_alignment']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_text_alignment', 'type' => 'select' );
$shortcode_option_map['column_spacing']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_column_spacing', 'type' => 'range' );
$shortcode_option_map['number_posts']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_items', 'type' => 'range' );
$shortcode_option_map['pagination_type']['fusion_portfolio'] = array( 'theme-option' => 'grid_pagination_type', 'type' => 'select' );
$shortcode_option_map['content_length']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_content_length', 'type' => 'select' );
$shortcode_option_map['excerpt_length']['fusion_portfolio'] = array( 'theme-option' => 'excerpt_length_portfolio', 'type' => 'range' );
$shortcode_option_map['portfolio_title_display']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_title_display', 'type' => 'select' );
$shortcode_option_map['strip_html']['fusion_portfolio'] = array( 'theme-option' => 'portfolio_strip_html_excerpt', 'type' => 'yesno' );

return $shortcode_option_map;
}

每个的格式如下:

$shortcode_option_map[ param_name ][ shortcode ] = array( 'theme-option' => option_id );

  • param_name =元素中选项的param_name。
  • shortcode =在元素类中定义的短代码名称。
  • option_id =要添加到选项面板的设置的ID。

除了theme-option之外,还可以设置可选属性:

  • subset = 如果要添加到选项面板的设置包含多个值,例如尺寸值。
  • type = 要添加的设置类型。 这会更改说明文本的格式。
  • reset = 添加了重置元素值的功能。 这用于颜色和范围类型。

为了更好地理解可用选项,请检查class-fusion-settings.php中的get_default_description函数。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

回到顶部

QQ群962782975