从widget返回的PHP不';不接受循环参数

从widget返回的PHP不';不接受循环参数,php,wordpress,widget,Php,Wordpress,Widget,我试图制作一个非常具体的小部件,但我无法克服这一主要问题。小部件创建一个循环来显示来自特定自定义帖子类型的信息。重要的是,它应该允许开发人员创建自定义布局,但如果我不输入任何内容,也有一个默认设置。我已经能够让大部分事情都正常工作,包括允许在插件中执行PHP。但问题是,当我在小部件中创建自定义布局时,它开始从基本帖子而不是自定义帖子类型中提取信息。但是,如果我将代码直接放入PHP文件而不是小部件中,它将按预期执行。以下是前端代码: <?php echo $before_widget; e

我试图制作一个非常具体的小部件,但我无法克服这一主要问题。小部件创建一个循环来显示来自特定自定义帖子类型的信息。重要的是,它应该允许开发人员创建自定义布局,但如果我不输入任何内容,也有一个默认设置。我已经能够让大部分事情都正常工作,包括允许在插件中执行PHP。但问题是,当我在小部件中创建自定义布局时,它开始从基本帖子而不是自定义帖子类型中提取信息。但是,如果我将代码直接放入PHP文件而不是小部件中,它将按预期执行。以下是前端代码:

<?php

echo $before_widget;
echo $before_title . $title . $after_title;

//The Loop
$args = array( 'post_type' => 'ctas', 'posts_per_page' => $num_ctas );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="<?php echo $cta_class; ?>">
    <?php
      if(!empty($cta_layout)){
        echo $cta_layout; //this is the code entered into the widget that doesn't execute as expected
      } else { ?>
    <h3><?php the_title(); ?></h3> <!--this part works fine-->
    <?php the_content(); ?>
    <?php } ?>
  </div>
<?php endwhile;

//After The Widget
echo $after_widget;
?>


替换
echo$cta\u布局带有
eval($cta\u布局)

“echo”函数打印字符串,它根本不运行php代码eval'函数将执行php代码

例如:


评估('echo“xyz;”);将打印xyz。

效果很好。非常感谢。但现在它又引出了另一个问题。我需要能够在该框中混合编写PHP和HTML,因此需要立即关闭PHP。所以我试过:
eval('?'.>'.$cta_layout.'eval('?>'.$cta_layout.'是的,我两种方法都试过了。但我也刚刚意识到,如果我关闭PHP,但不重新打开它,一切似乎都能正常工作。但这对我来说没有逻辑意义,所以我假设如果它这样离开它,将来会有更大的问题。