我已经为添加Wp-Editer
创建了一个脚本,但它在其他地方正常工作但在Widget
和Page Builder by SiteOrigin无效,请帮帮我...
看起来像
我的剧本如下。
<?php
// Register widget
function register_getstarted_widget() {
register_widget('mansukh_Aboutus');
}
add_action('widgets_init', 'register_getstarted_widget');
/**
* Adds About Us widget.
*/
class mansukh_Aboutus extends WP_Widget {
/**
* Register widget with WordPress.
*/
function __construct() {
parent::__construct(
'mansukh_aboutus', // Base ID
__('Fulgent About Us', 'mansukh'), // Name
array('description' => __('Displays a About Us section.', 'mansukh'),) // Args
);
}
/**
* Front-end display of widget.
*
* @see WP_Widget::widget()
*
* @param array $args Widget arguments.
* @param array $instance Saved values from database.
*/
public function widget($args, $instance) {
echo $args['before_widget'];
/* if (!empty($instance['title'])) {
echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title'];
} */
/* Home About Us */
$mansukh_home_title = !empty($instance['mansukh_home_title']) ? sanitize_text_field($instance['mansukh_home_title']) : '';
$mansukh_home_aboutus = !empty($instance['mansukh_home_aboutus']) ? wpautop($instance['mansukh_home_aboutus']) : '';
?>
<div class="section-row about-secton">
<div class="container">
<div class="row">
<div class="col-md-12 main-objective">
<div class="row">
<div class="<?php echo $mansukh_home_aboutus ? 'col-md-6' : 'col-md-12' ?> col-sm-12">
<?php echo $mansukh_home_aboutus; ?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
echo $args['after_widget'];
}
/**
* Back-end widget form.
*
* @see WP_Widget::form()
*
* @param array $instance Previously saved values from database.
*/
public function form($instance) {
#$title = !empty($instance['title']) ? $instance['title'] : __('New title', 'mansukh');
/* Home About Us */
$mansukh_home_title = !empty($instance['mansukh_home_title']) ? sanitize_text_field($instance['mansukh_home_title']) : '';
$mansukh_home_aboutus = !empty($instance['mansukh_home_aboutus']) ? wpautop($instance['mansukh_home_aboutus']) : '';
/*
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>">
</p>
*/
?>
<div class="page-widget themeoption-themes1">
<div class="section theme-tabs">
<div class="theme-option-inner-tab-group">
<div class="ft-control">
<label class="explain" for="<?php echo $this->get_field_id('mansukh_home_title'); ?>"><?php _e('About Us Title', 'mansukh'); ?></label>
<input id="<?php echo $this->get_field_id('mansukh_home_title'); ?>" class="of-input" type="text" name="<?php echo $this->get_field_name('mansukh_home_title'); ?>"
value="<?php echo $mansukh_home_title; ?>" placeholder="<?php _e('About Us Title', 'mansukh'); ?>" />
</div>
</div>
</div>
<div class="section theme-tabs">
<div class="theme-option-inner-tab-group">
<div class="ft-control">
<label class="explain" for="<?php echo $this->get_field_id('mansukh_home_aboutus'); ?>"><?php _e('Aboutus Details', 'mansukh'); ?></label>
<?php
$mansukh_editor_id = $this->get_field_id('mansukh_home_aboutus');
$mansukh_editor_name = $this->get_field_name('mansukh_home_aboutus');
$mansukh_settings = array(
'textarea_name' => $mansukh_editor_name,
'textarea_rows' => 20,
'media_buttons' => false,
'teeny' => true,
);
wp_editor($mansukh_home_aboutus, $mansukh_editor_id, $mansukh_settings);
?>
</div>
</div>
</div>
</div>
<?php
}
/**
* Sanitize widget form values as they are saved.
*
* @see WP_Widget::update()
*
* @param array $new_instance Values just sent to be saved.
* @param array $old_instance Previously saved values from database.
*
* @return array Updated safe values to be saved.
*/
public function update($new_instance, $old_instance) {
$instance = array();
#$instance['title'] = (!empty($new_instance['title']) ) ? strip_tags($new_instance['title']) : '';
/* Home Banner */
$instance['mansukh_home_title'] = (!empty($new_instance['mansukh_home_title']) ) ? sanitize_text_field($new_instance['mansukh_home_title']) : '';
$instance['mansukh_home_aboutus'] = (!empty($new_instance['mansukh_home_aboutus']) ) ? wpautop($new_instance['mansukh_home_aboutus']) : '';
return $instance;
}
}
// End About Us Widget.
?>
答案 0 :(得分:5)
问题是有一个隐藏的小部件,首先出现TinyMCE。
不要复制答案,请在此处查看:https://wordpress.stackexchange.com/questions/82670/why-cant-wp-editor-be-used-in-a-custom-widget
这有点复杂,但只是解决方法。
答案 1 :(得分:0)
两年后的今天,我遇到了类似的问题并解决了它。 我在页面构建器中使用了英雄小部件,键入了一些行并希望使其成为标题,但编辑器不允许任何选项,而在普通编辑器中一切都还可以。但是当我处于页面构建器模式时,它不起作用。 我重新启动了计算机,删除了所有缓存,当我使用其他浏览器时,它工作正常。
答案 2 :(得分:0)
您可以使用wp-includes / widgets / class-wp-widget-text.php中的默认小部件轻松地完成此操作
只需将代码复制到子主题的functions.php中即可。
将类名“ WP_Widget_Text”重命名为您需要的任何其他名称
您可以在以下代码中更改小部件名称。不要更改任何其他代码。 parent :: __ construct('text',__('Your new widget name'),$ widget_ops,$ control_ops);
然后使用以下代码注册小部件。
function wpb_load_widget() {
register_widget( 'Your widget class name' );
}
add_action( 'widgets_init', 'wpb_load_widget' );