Php 尝试使用页面中的短代码调用小部件,但函数不';行不通

Php 尝试使用页面中的短代码调用小部件,但函数不';行不通,php,wordpress,widget,shortcode,Php,Wordpress,Widget,Shortcode,我试图使用我在WordPress上所见即所得编辑器上找到的一个函数来调用小部件,但是它似乎不起作用 简称: [wysiwyg_widget id="sidebar"] 功能本身是: function wysiwyg_widget( $atts ) { global $wp_widget_factory; extract( shortcode_atts( array( 'widget_name' => "WYSIWYG_Widgets

我试图使用我在WordPress上所见即所得编辑器上找到的一个函数来调用小部件,但是它似乎不起作用

简称:

[wysiwyg_widget id="sidebar"]
功能本身是:

    function wysiwyg_widget( $atts ) {

      global $wp_widget_factory;

      extract( shortcode_atts( array(
          'widget_name' => "WYSIWYG_Widgets_Widget",
      'id' => null,
      ), $atts ) );

      if ( ! is_a( $wp_widget_factory->widgets[ $widget_name ], 'WP_Widget' ) ) :
          $wp_class = 'WP_Widget_' . ucwords( strtolower( $class ) );

          if ( ! is_a ( $wp_widget_factory->widgets[ $wp_class ], 'WP_Widget' ) ) :
              return '<p>' .sprintf( __( "%s: Widget class not found. Make sure this widget exists and the class name is correct" ), '<strong>' . $class . '</strong>' ) . '</p>';
          else:
              $class = $wp_class;
          endif;
      endif;

    if ( ! is_null( $id ) ) {
      $instance['wysiwyg-widget-id'] = $id;
    }

      ob_start();
      the_widget( $widget_name, $instance, array(
      'widget_id'=>'arbitrary-instance-'.$id,
          'before_widget' => '',
          'after_widget' => '',
          'before_title' => '',
          'after_title' => ''
      ) );
      $output = ob_get_contents();
      ob_end_clean();
      return $output;

  }
  add_shortcode( 'wysiwyg_widget','wysiwyg_widget' );
所见即所得功能小部件($atts){
全球$wp_小部件_工厂;
提取(短码)附件(数组)(
“widget\u name”=>“所见即所得widget\u widget”,
'id'=>null,
)美元(附件);;
如果(!is_a($wp_widget_factory->widgets[$widget_name],'wp_widget')):
$wp_class='wp_Widget_'.ucwords(strtolower($class));
如果(!is_a($wp_widget_factory->widgets[$wp_class],'wp_widget')):
返回“”.sprintf(“%s:小部件类未找到。请确保此小部件存在且类名正确”),“”.$class.”)。

”; 其他: $class=$wp_class; endif; endif; 如果(!为null($id)){ $instance['wysiwyg-widget-id']=$id; } ob_start(); _小部件($widget_name,$instance,array)( “widget_id”=>“任意实例-”.$id, '在小部件'=>''之前, '在小部件'=>''之后, “在标题“=>”之前, “在标题之后”=>“ ) ); $output=ob_get_contents(); ob_end_clean(); 返回$output; } 添加_短码('wysiwyg_小部件','wysiwyg_小部件');
有什么建议吗?或者如果没有插件,还有其他方法吗?谢谢你的帮助