在自定义简码中调用未定义的函数do_shortcode

时间:2019-07-26 13:15:48

标签: php wordpress shortcode

我正在为WPBakery插件创建一个自定义元素,并在添加do_shortcode($content)时收到错误消息。

我的元素名为hero.php,其功能如下(在WPBakery中):

  • 用户从选项(hero_html())中选择英雄模块。
  • 然后,用户可以(在英雄模块中)选择添加幻灯片(hero_content_html())。

视觉:

enter image description here

一个var_dump($content)吐出了正确的字段和值,但不确定为什么未定义do_shortcode吗?

下面是该函数的调用位置:

<?php

public function hero_html( $atts, $content = null) {
	$output = 
	$el_class = 
	
	extract( 
		shortcode_atts( 
			array(
				'el_class' 				=> '',
				'css' 					=> '',
			), $atts 
		) 
	);
	
	static $i = 0;

	$output = '<div id="slickslider-'.$i++.'">'.do_shortcode($content).'</div>';
	
	return $output;

}

public function hero_content_html( $atts, $content = null ) {
	
	$output = 
	$title =

	extract( 
		shortcode_atts( 
			array(
				'title'   				=> '',
			), $atts 
		) 
	);
	

	$output .= '
				<!-- Slide -->
				<div class="heroSlider">';

	$output .= '
					<div class="container">
						<div class="row">
							<div class="col-10">
							'(!empty($title) ? '<h1>' . $title . '</h1>' : "" );'
							</div>
						</div>
					</div>
					
				</div>
				<!-- Slide -->
			';
	
	return $output;
		
	}
     
} 

?>

1 个答案:

答案 0 :(得分:0)

请检查文件wp-load.php是否在此页面之前加载。 要运行do_shortcode(),需要wp-load.php。