Php 当我试图用短代码保存页面时,WordPress编辑器会中断
我需要帮助。我不明白发生了什么事。我创建了一个短代码。他在那儿Php 当我试图用短代码保存页面时,WordPress编辑器会中断,php,wordpress,shortcode,Php,Wordpress,Shortcode,我需要帮助。我不明白发生了什么事。我创建了一个短代码。他在那儿 function mainslider_function() { function lesson_slider() { $open_div = '<div class="autoplay">'; $close_div = '</div>'; if( have_rows('test_fields', 'option') ):
function mainslider_function() {
function lesson_slider() {
$open_div = '<div class="autoplay">';
$close_div = '</div>';
if( have_rows('test_fields', 'option') ):
echo $open_div;
while ( have_rows('test_fields', 'option') ) : the_row();
$sub_value = get_sub_field('image');
echo '<div class="slide"><img src="'.$sub_value.'"></div>';
endwhile;
echo $close_div;
endif;
}
return lesson_slider();
}
一切正常。如果我真的喜欢这个
function mainslider_function() {
function test(){
$test = 'test message';
echo test;
}
return test();
}
编辑停止了工作。请告诉我为什么会发生这种情况?您不需要内部函数。您可以连接字符串部分或使用 对于后者,这将成为:
function mainslider_function()
{
ob_start();
if (have_rows('test_fields', 'option')) {
echo '<div class="autoplay">';
while (have_rows('test_fields', 'option')) {
the_row();
$sub_value = get_sub_field('image');
echo '<div class="slide"><img src="', $sub_value, '"></div>';
}
echo '</div>';
}
return ob_get_clean();
}
函数main\u函数()
{
ob_start();
如果(有行('test_fields','option')){
回声';
while(有行('test\u fields','option')){
_行();
$sub_value=get_sub_字段(“图像”);
回声';
}
回声';
}
返回ob_get_clean();
}
注意:在这个过程中还做了一些代码清理 可能是因为这样做,多次调用
main slider\u function
将引发致命错误,表明您的内部函数已经定义。我不太了解WP的良好实践,但我想说的是,要么将内部函数定义为“全局”函数(正确命名/命名空间),要么使用function\u exists
测试其存在性。请检查服务器中的错误。实际上,您不需要内部函数。您可以连接字符串或使用输出缓冲。@Jeto您能给我举个例子吗。我不太擅长php。你是个魔术师,非常感谢你救了我一天!!!!!真的非常感谢。我会一行一行地找出答案来提高我的知识。@VictorSokoliuk不客气。如果你的答案是正确的,请考虑接受答案。
function mainslider_function()
{
ob_start();
if (have_rows('test_fields', 'option')) {
echo '<div class="autoplay">';
while (have_rows('test_fields', 'option')) {
the_row();
$sub_value = get_sub_field('image');
echo '<div class="slide"><img src="', $sub_value, '"></div>';
}
echo '</div>';
}
return ob_get_clean();
}