将textarea值写为PHP

时间:2014-05-30 14:06:52

标签: php html wordpress

我正在创建一个WordPress插件,用户可以根据textarea的值指定自定义循环转发器。

这个想法是,用户可以使用插件附带的预定义转发器,或者只需将html + PHP添加到textarea即可构建自己的转发器。

自定义转发器的示例:

<h1><?php the_title(); ?></h1> <?php the_excerpt(); ?> - <?php the_time(); ?>

问题是当我回显/打印textarea值时,<?php ?>标记内的WordPress函数不会执行。

我尝试的甚至可能吗?


让我进一步解释...... 我正在构建一个基于Ajax Load More脚本的可安装插件。 此插件仅供网站管理员使用,并且可以完全控制我希望允许他们创建custom repeater的帖子。

在插件设置页面上,我想要一个textarea,管理员可以在其中添加他们想要的任何html / php代码,以便自定义转发器。

我的问题是如何执行在前端的textarea中输入的PHP,因为回显该值不起作用。

3 个答案:

答案 0 :(得分:2)

使用eval函数将纯文本更改为php代码。关于它的更多信息here

eval('echo "Hello world!"'); 

将打印出“Hello world!”而不是'echo'Hello world!“'

但是如果我写信给textarea:

die();

答案 1 :(得分:1)

这样做的一种方法是使用Justinas所说的eval()函数,但我强烈建议您不要使用它,因为我发现它不可靠且有问题。

我建议将PHP代码从您从文本区域提取的字符串写入文件,然后将该文件包含在您希望PHP执行的位置。

所以,我建议运行

<?php file_put_contents($file_path, $contents); ?>

每当更新文本区域以更新文件时,

<?php include_once($file_path); ?>

您希望代码位于前端。

答案 2 :(得分:-1)

除非它们在循环中,否则那些wordpress函数将无法工作,这是一个基本循环:

 <?php if(have_posts()) { ?>    
 <?php while(have_posts()) { ?> 
 <?php the_post(); ?>   
 <?php // custom post content code for title, excerpt and featured image ?> 
 <?php } // end while ?>    
 <?php } // end if ?>