一个变量中包含PHP,而另一个变量中包含HTML

一个变量中包含PHP,而另一个变量中包含HTML,php,wordpress,Php,Wordpress,我想添加一个变量,在HTML中保存另一个变量中的函数(无论是WordPress还是自定义函数)。问题是,当我连接它时,它会弹出前端的div容器外部,我需要它在容器内部 例如,如图所示,我希望在这些div中生成“$stay_put”或PHP: function sort_sections( $sections ) { $sections = explode(',', $sections); $output = ''; /* $stay put needs to

我想添加一个变量,在HTML中保存另一个变量中的函数(无论是WordPress还是自定义函数)。问题是,当我连接它时,它会弹出前端的div容器外部,我需要它在容器内部

例如,如图所示,我希望在这些div中生成“$stay_put”或PHP:

function sort_sections( $sections ) {
      $sections = explode(',', $sections);
      $output = '';
      /* $stay put needs to be able to hold any function */
      $stay_put = wp_list_pages();
      if ( empty( $sections ) ) {
          return $output;
      }
      foreach( $sections as $section ) {
        switch ( $section ) {
        case 'section_a':
            $output .= '<div>Section A</div>';
            break;
        case 'section_b':
            $output .= '<div>Section B</div>';
            break;
        default:
            break;
        }
      }
      return $output;
  }
函数排序\u节($sections){
$sections=分解(“,”,$sections);
$output='';
/*$stay put需要能够保持任何功能*/
$stay_put=wp_list_pages();
如果(空($节)){
返回$output;
}
foreach($sections作为$section){
交换机($部分){
“a节”案例:
$output.='A节';
打破
案例“第b节”:
$output.='Section B';
打破
违约:
打破
}
}
返回$output;
}
我想到了什么,但在容器外部显示变量:

$stay_put

foreach( $sections as $section ) {
  switch ( $section ) {
  case 'section_a':
      $output .= '<div>' . $stay_put . '</div>';
      break;
  case 'section_b':
      $output .= '<div>' . $stay_put . '</div>';
      break;
  default:
      break;
  }
}
$stay\u put
foreach($sections作为$section){
交换机($部分){
“a节”案例:
$output.=''.$stay_put';
打破
案例“第b节”:
$output.=''.$stay_put';
打破
违约:
打破
}
}
如果有人能帮忙

先谢谢你

编辑:解决方案

function render_sections( $sections ) {
      $sections = explode(',', $sections);
      $output = '';
      $stay_put = wp_list_pages(['echo' => false]);
      if ( empty( $sections ) ) {
          return $output;
      }
      foreach( $sections as $section ) {
        switch ( $section ) {
        case 'section_a':
            $output .= '<div>Section A';
            $output .= $stay_put;
            $output .= '</div>';
            break;
        case 'section_b':
            $output .= '<div>Section B';
            $output .= $stay_put;
            $output .= '</div>';
            break;
        default:
            break;
        }
      }
      return $output;
  }
function render_节($sections){
$sections=分解(“,”,$sections);
$output='';
$stay_put=wp_list_页面(['echo'=>false]);
如果(空($节)){
返回$output;
}
foreach($sections作为$section){
交换机($部分){
“a节”案例:
$output.='A节';
$output.=$stay\u put;
$output.='';
打破
案例“第b节”:
$output.='Section B';
$output.=$stay\u put;
$output.='';
打破
违约:
打破
}
}
返回$output;
}

示例代码的主要问题是您希望返回输出,但是调用
wp\u list\u pages
不会返回所需的信息,而是直接响应它。如果要将
wp\u list\u pages
的结果添加到输出中,则必须向
wp\u list\u pages
添加一个参数。根据,您必须将
echo
设置为
false

要将其添加到每个部分的div之后,请参见以下代码:

function render_sections( $sections ) {
      $sections = explode(',', $sections);
      $output = '';
      $stay_put = wp_list_pages(['echo' => false);
      if ( empty( $sections ) ) {
          return $output;
      }
      foreach( $sections as $section ) {
        switch ( $section ) {
        case 'section_a':
            $output .= "<div>Section A</div>';
            $output .= $stay_put;
            break;
        case 'section_b':
            $output .= '<div>Section B</div>';
            $output .= $stay_put;
            break;
        default:
            break;
        }
      }
      return $output;
  }
function render_节($sections){
$sections=分解(“,”,$sections);
$output='';
$stay_put=wp_list_页面(['echo'=>false);
如果(空($节)){
返回$output;
}
foreach($sections作为$section){
交换机($部分){
“a节”案例:
$output.=“A节”;
$output.=$stay\u put;
打破
案例“第b节”:
$output.='Section B';
$output.=$stay\u put;
打破
违约:
打破
}
}
返回$output;
}

请注意,我已将函数名称从
sort_sections
更改为
render_sections
,因为这似乎更接近于描述其功能(干净的代码),您必须将
echo
设置为
false

要将其添加到每个部分的div之后,请参见以下代码:

function render_sections( $sections ) {
      $sections = explode(',', $sections);
      $output = '';
      $stay_put = wp_list_pages(['echo' => false);
      if ( empty( $sections ) ) {
          return $output;
      }
      foreach( $sections as $section ) {
        switch ( $section ) {
        case 'section_a':
            $output .= "<div>Section A</div>';
            $output .= $stay_put;
            break;
        case 'section_b':
            $output .= '<div>Section B</div>';
            $output .= $stay_put;
            break;
        default:
            break;
        }
      }
      return $output;
  }
function render_节($sections){
$sections=分解(“,”,$sections);
$output='';
$stay_put=wp_list_页面(['echo'=>false);
如果(空($节)){
返回$output;
}
foreach($sections作为$section){
交换机($部分){
“a节”案例:
$output.=“A节”;
$output.=$stay\u put;
打破
案例“第b节”:
$output.='Section B';
$output.=$stay\u put;
打破
违约:
打破
}
}
返回$output;
}

请注意,我已将函数名从
sort\u sections
更改为
render\u sections
,因为这似乎更接近于描述其功能(干净的代码)。

什么是
$stay\u put
有效?在这种情况下,我需要一个WP函数:$stay\u put=WP\u list\u pages()。但是,我希望它能够从该变量调用任何常规函数。输出是什么?你能在你的问题中更新它吗?它保持“”;为了清晰起见,代码更新。@thx1138你能展示你如何显示变量
$output
什么
$stay\u put
保持?在这种情况下,我想要一个WP函数:$stay\u put=WP\l吗ist_pages()。但是,我希望它能够从该变量调用任何常规函数。输出是什么?您能在问题中更新它吗?它包含“”;为清晰起见,代码已更新。@thx1138您能演示如何显示该变量
$output