无法让PHP在短代码内容中工作

时间:2013-08-16 09:45:27

标签: php wordpress shortcode

我在网站内查看类似问题时尝试了几种解决方案,但这对我无效。 =(请帮忙。

这是我原始代码的摘录:

<form action="" method="get">
<input type="text" name="search" value="">
<input type="submit" value="Search">
<?php echo do_shortcode('[expand]
<input type="checkbox" name="title" <?php if(isset($_GET['title'])) echo "checked='checked'"; ?>>
    <label for="ti">Title</label></td>
[/expand]'); ?>
</form>

基本上,如果在点击提交之前检查了复选框,我希望我的复选框保持选中状态。不幸的是,这已经是几个小时了,我无法让PHP在短代码中工作。

请帮忙。

3 个答案:

答案 0 :(得分:0)

不,你不能。你的字符串中的PHP代码不是PHP代码。您必须检测实际上是PHP的部分,然后对它们进行评估。

在将[expand]代码传递给do_shortcode()函数之前,创建要嵌入其中的字符串。

答案 1 :(得分:0)

而不是&gt;     标题 [/扩大]'); ?&GT;

简单地做

<?php
$state = isset($_GET['title'])?"checked='checked'":"";
$expand = "[expand]
<input type=\"checkbox\" name=\"title\" ".$state. " >";
echo do_shortcode($expand);?>

答案 2 :(得分:0)

你可以试试这个,

<form action="" method="GET">
    <input type="text" name="search" value="">
    <input type="submit" value="Search">
    <?php 
     $check=isset($_GET['title']) ? "checked='checked'" : '';
     echo do_shortcode('[expand]
     <input type="checkbox" name="title" '.$check.' ><label for="ti">Title</label></td>
     <input type="submit" value="Search">
     [/expand]'); 
    ?>
</form>