gpt4 book ai didi

php - Elementor Wordpress 插件随机将单词 "array"添加到我的自定义小部件

转载 作者:行者123 更新时间:2023-11-27 23:23:57 33 4
gpt4 key购买 nike

我正在为 elementor 构建一个自定义小部件,以帮助我的客户在没有编码知识的情况下自行向网站添加元素。当我遇到一个非常奇怪的问题时,我几乎完成了它。出于某种原因,我设置的链接到新页面的按钮正在将文本“数组”放入自身。

我已经尝试通过编辑我的 html 直接将“数组”文本放入文本中。当我在 wordpress 上更新或进入预览模式时,此文本消失并且“array”一词重新出现。我什至在按钮上添加了一个字段,我的客户或我可以在其中添加我们自己的文本以试图解决问题,但现在该文本只是以“数组”开头。

之前: enter image description here

之后: enter image description here

我所有的相关代码都在我的 awesomesauce.php 文件中,我的小部件的代码是

<?php
namespace ElementorAwesomesauce\Widgets;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

/**
* @since 1.1.0
*/
class Awesomesauce extends Widget_Base {

/**
* Retrieve the widget name.
*
* @since 1.1.0
*
* @access public
*
* @return string Widget name.
*/
public function get_name() {
return 'awesomesauce';
}

/**
* Retrieve the widget title.
*
* @since 1.1.0
*
* @access public
*
* @return string Widget title.
*/
public function get_title() {
return __( 'Awesomesauce', 'elementor-awesomesauce' );
}

/**
* Retrieve the widget icon.
*
* @since 1.1.0
*
* @access public
*
* @return string Widget icon.
*/
public function get_icon() {
return 'fa fa-pencil';
}

/**
* Retrieve the list of categories the widget belongs to.
*
* Used to determine where to display the widget in the editor.
*
* Note that currently Elementor supports only one category.
* When multiple categories passed, Elementor uses the first one.
*
* @since 1.1.0
*
* @access public
*
* @return array Widget categories.
*/
public function get_categories() {
return [ 'general' ];
}

/**
* Register the widget controls.
*
* Adds different input fields to allow the user to change and customize the widget settings.
*
* @since 1.1.0
*
* @access protected
*/
protected function _register_controls() {
$this->start_controls_section(
'section_content',
[
'label' => __( 'Content', 'elementor-awesomesauce' ),
]
);

$this->add_control(
'title',
[
'label' => __( 'Title', 'elementor-awesomesauce' ),
'type' => Controls_Manager::TEXT,
'default' => __( 'Car Title', 'elementor-awesomesauce' ),
]
);

$this->add_control(
'description',
[
'label' => __( 'Description', 'elementor-awesomesauce' ),
'type' => Controls_Manager::TEXTAREA,
'default' => __( 'Sold or Currently available', 'elementor-awesomesauce' ),
]
);

$this->add_control(
'content',
[
'label' => __( 'Content', 'elementor-awesomesauce' ),
'type' => Controls_Manager::WYSIWYG,
'default' => __( 'Remove this text and insert media', 'elementor-awesomesauce' ),
]
);

$this->add_control(
'link',
[
'label' => __( 'Link', 'elementor-awesomesauce' ),
'type' => Controls_Manager::URL,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'https://your-link.com', 'elementor-awesomesauce' ),
'default' => [
'url' => '#',
],

]
);

$this->add_control(
'text',
[
'label' => __( 'Text', 'elementor' ),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => __( 'Click here', 'elementor' ),
'placeholder' => __( 'Click here', 'elementor' ),
]
);


$this->end_controls_section();
}

/**
* Render the widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*
* @since 1.1.0
*
* @access protected
*/
protected function render() {
$settings = $this->get_settings_for_display();

$this->add_inline_editing_attributes( 'title', 'none' );
$this->add_inline_editing_attributes( 'description', 'basic' );
$this->add_inline_editing_attributes( 'content', 'advanced' );
$this->add_inline_editing_attributes( 'link', 'none');
$this->add_inline_editing_attributes( 'text', 'basic');

// Add render attributes to add classes to html elements h2, article, figure, and div

$this->add_render_attribute( 'title', 'class', 'title is-5');
$this->add_render_attribute( 'description', 'class', 'subtitle');
$this->add_render_attribute( 'content', 'class', 'image is-4by3');
$this->add_render_attribute( 'link', 'class', 'button is-rounded is-fullwidth');

$this->add_render_attribute( 'wrapper', 'class', 'tile is-parent');
$this->add_render_attribute( 'wrappertwo', 'class', 'tile is-child box');
$this->add_render_attribute( 'text', 'class', 'subtitle has-text-right');

?>

<div <?php echo $this->get_render_attribute_string( 'wrapper' ); ?>><?php echo $settings['wrapper']; ?>
<div <?php echo $this->get_render_attribute_string( 'wrappertwo' ); ?>><?php echo $settings['wrappertwo']; ?>
<h2 <?php echo $this->get_render_attribute_string( 'title' ); ?>><?php echo $settings['title']; ?></h2>
<div <?php echo $this->get_render_attribute_string( 'description' ); ?>><?php echo $settings['description']; ?></div>
<div <?php echo $this->get_render_attribute_string( 'content' ); ?>><?php echo $settings['content']; ?></div>
<div <?php echo $this->get_render_attribute_string( 'link' ); ?>><?php echo $settings['link']; ?>
<div <?php echo $this->get_render_attribute_string( 'text'); ?>><?php echo $settings['text']; ?></div>
</div>
</div>

</div>


<?php
}

/**
* Render the widget output in the editor.
*
* Written as a Backbone JavaScript template and used to generate the live preview.
*
* @since 1.1.0
*
* @access protected
*/
protected function _content_template() {
?>
<#
view.addInlineEditingAttributes( 'title', 'none' );
view.addInlineEditingAttributes( 'description', 'basic' );
view.addInlineEditingAttributes( 'content', 'advanced' );
view.addInlineEditingAttributes( 'car_image', 'advanced');
#>
<div ' + view.getRenderAttributeString( 'wrapper' ) + ' >
<article ' + view.getRenderAttributeString( 'wrappertwo' ) + ' >
<h2 class="title is-5" {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}}</h2>
<div class="subtitle" {{{ view.getRenderAttributeString( 'description' ) }}}>{{{ settings.description }}}</div>
<figure class="image is-4by3" {{{ view.getRenderAttributeString( 'content' ) }}}>{{{ settings.content }}}</figure>
<a href="{{ settings.link.url }}" class="button is-rounded is-fullwidth">
<span {{{ view.getRenderAttributeString( 'text' ) }}}>{{{ settings.text }}}</span>
</a>
</article>
</div>
<?php
}
}

不知道是什么原因造成的。希望这是一个很容易解决的愚蠢问题。

最佳答案

Liton Arefin 在我在 wordpress stack exchange 上发表的另一篇关于同一问题的帖子中发现了这一点。这是修复程序的链接。 https://wordpress.stackexchange.com/a/348086/174997

关于php - Elementor Wordpress 插件随机将单词 "array"添加到我的自定义小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57880995/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com