Php 尝试使用页面中的短代码调用小部件,但函数不';行不通
我试图使用我在WordPress上所见即所得编辑器上找到的一个函数来调用小部件,但是它似乎不起作用 简称: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
[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_小部件');
有什么建议吗?或者如果没有插件,还有其他方法吗?谢谢你的帮助