Php 必须是数组类型,字符串给定
我正在尝试创建一个自定义elementor小部件;但是,“添加链接”属性似乎不支持链接的字符串。当出现以下错误时:Php 必须是数组类型,字符串给定,php,wordpress,elementor,Php,Wordpress,Elementor,我正在尝试创建一个自定义elementor小部件;但是,“添加链接”属性似乎不支持链接的字符串。当出现以下错误时: Must be of the type array, string given 如何将保存在$course_link turn中的字符串转换为“类型数组” protected function render() { $settings = $this->get_settings_for_display(); $current_user = w
Must be of the type array, string given
如何将保存在$course_link turn中的字符串转换为“类型数组”
protected function render() {
$settings = $this->get_settings_for_display();
$current_user = wp_get_current_user();
$course_link = get_post_permalink( $settings['training']);
$this->add_render_attribute( 'wrapper', 'class', 'elementor-button-wrapper' );
//Als gebruiker géén toegang heeft tot de training plaats saleslink
if (get_user_meta( $current_user->ID, 'course_' . $settings['training'] . '_access_from' , true ) || current_user_can('administrator')) {
$this->add_link_attributes( 'button', $course_link );
$this->add_render_attribute( 'button', 'class', 'elementor-button-link' );
}
elseif ( ! empty( $settings['sales-link']['url'] ) && !get_user_meta( $current_user->ID, 'course_' . $settings['training'] . '_access_from' , true )) {
$this->add_link_attributes( 'button', $settings['sales-link'] );
$this->add_render_attribute( 'button', 'class', 'elementor-button-link' );
}
if ( ! empty( $settings['size'] ) ) {
$this->add_render_attribute( 'button', 'class', 'elementor-size-' . $settings['size'] );
}
$this->add_render_attribute( 'button', 'class', 'elementor-button' );
$this->add_render_attribute( 'button', 'role', 'button' );
if ( $settings['hover_animation'] ) {
$this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $settings['hover_animation'] );
}
?>
<div <?php echo $this->get_render_attribute_string( 'wrapper' ); ?>>
<a <?php echo $this->get_render_attribute_string( 'button' ); ?>>
<?php $this->render_text(); ?>
</a>
</div>
<?php
}
受保护的函数render(){
$settings=$this->get_settings_for_display();
$current_user=wp_get_current_user();
$course\u link=get\u post\u permalink($settings['training');
$this->add_render_属性('wrapper','class','elementor button wrapper');
//Als gebruiker gén toegang heeft tot de training plaats saleslink
如果(获取用户元($current\u user->ID,'course'.$settings['training'].'u access\u from',true)|当前用户可以('administrator')){
$this->添加链接属性('button',$course\u link);
$this->add_render_属性('button','class','elementor button link');
}
elseif(!empty($settings['sales-link']['url'])和&!get_user_meta($current_user->ID,'course'.$settings['training'].\u access_from',true)){
$this->添加链接属性('button',$settings['sales-link']);
$this->add_render_属性('button','class','elementor button link');
}
如果(!empty($settings['size'])){
$this->add_render_属性('button','class','elementor size-'。$settings['size']);
}
$this->add_render_属性('button','class','elementor button');
$this->add_render_属性('button','role','button');
如果($settings['hover_animation'])){
$this->add_render_属性('button','class','elementor animation-'。$settings['hover_animation']);
}
?>
>
>
您可以将typecast
astring
(或任何内容)转换为数组
,如下所示:
$course_link = (array) $course_link;
因此,在函数中,您可以编辑第四行:
$course_link = (array) get_post_permalink( $settings['training'] );
或者第八行:
$this->add_link_attributes( 'button', (array) $course_link );
在这里你可以阅读